使用 pymysql 从 mysql 获取数据,但 return nan
using pymysql to get data from mysql but return nan
我尝试使用 python 从 mysql 获取一些数据,但 return nan。
有我的代码:
import csv
import pandas as pd
from sqlalchemy import create_engine, types
from pandas.io import sql
import pymysql
import numpy as np
db = pymysql.connect(host='192.0.0.0',port=0000,user='123',passwd='123321',db='matomo',charset='utf8')
cursor = db.cursor()
try:
SQL_Query = pd.read_sql_query(
'''SELECT name FROM matomo_site''',db
)
df0=pd.DataFrame(SQL_Query, columns=['a'])
except:
print("Error")
db.rollback()
db.close()
print(df0)
结果:
a
0 NaN
1 NaN
2 NaN
以及 matomo_site 上的 mysql 数据:
idsite name
1 Example
2 abc
3 def
我应该输出这样的数据:
a
0 Example
1 abc
2 def
这是因为我的数据在加密数据空间吗?
您设置的列 a
存在问题,DataFrame
中不存在该列 return,因此 a
列 a
中填充了缺失值。
您需要零钱:
df0=pd.DataFrame(SQL_Query, columns=['a'])
至:
df0 = pd.read_sql_query(
'''SELECT name FROM matomo_site''',db
).rename(columns={'name':'a'}).reset_index(drop=True)
因为read_sql_query
returnDataFrame
,所以如果需要默认RangeIndex
,则只添加rename
和Series.reset_index
和drop=True
.
我尝试使用 python 从 mysql 获取一些数据,但 return nan。 有我的代码:
import csv
import pandas as pd
from sqlalchemy import create_engine, types
from pandas.io import sql
import pymysql
import numpy as np
db = pymysql.connect(host='192.0.0.0',port=0000,user='123',passwd='123321',db='matomo',charset='utf8')
cursor = db.cursor()
try:
SQL_Query = pd.read_sql_query(
'''SELECT name FROM matomo_site''',db
)
df0=pd.DataFrame(SQL_Query, columns=['a'])
except:
print("Error")
db.rollback()
db.close()
print(df0)
结果:
a
0 NaN
1 NaN
2 NaN
以及 matomo_site 上的 mysql 数据:
idsite name
1 Example
2 abc
3 def
我应该输出这样的数据:
a
0 Example
1 abc
2 def
这是因为我的数据在加密数据空间吗?
您设置的列 a
存在问题,DataFrame
中不存在该列 return,因此 a
列 a
中填充了缺失值。
您需要零钱:
df0=pd.DataFrame(SQL_Query, columns=['a'])
至:
df0 = pd.read_sql_query(
'''SELECT name FROM matomo_site''',db
).rename(columns={'name':'a'}).reset_index(drop=True)
因为read_sql_query
returnDataFrame
,所以如果需要默认RangeIndex
,则只添加rename
和Series.reset_index
和drop=True
.