我很难理解我的 sql 到 pandas 数据框数据类型的情况:
- User_ID 应该是一个“对象”。这很好。
- DATE的格式为201612、201701、201702等(年数+月数)
- INCOME 是所有数值,例如 57.25、50、100.10 等
- DEDUCTIONS 也是数字
- COUNT of STORE 自然是一个整数......
我不明白为什么我的数据集以这些计数和总和字段作为对象返回,因为我不能使用诸如 df.total_deductions.max() 之类的操作。我无法理解可能导致此问题的原因或如何解决它。
query = """ SELECT
date,
user_id,
sum(income) total_spend,
sum(deductions) total_deductions ,
count(distinct stores) number_stores
FROM db_table GROUP BY user_id """
df = pd.read_sql(query, jdbc_connection)
df.dtypes:
date: object
user_id: object
total_spend: float
total_deductions: object
number_stores: object
我看了看数据。我似乎无法表明会导致这些计数或总和成为对象而不是数值。
我尝试使用 pd.to_numeric( each_of_my_columns, error ='coerce') 但这个强制选项强制它们为“NaN”。
有人可以假设这里会发生什么或如何解决这个问题,因为我假设我正在做一些应该明显不正确的事情吗?