使用 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,因此 aa 中填充了缺失值。

您需要零钱:

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_queryreturnDataFrame,所以如果需要默认RangeIndex,则只添加renameSeries.reset_indexdrop=True .