pandas数字列被视为对象,won'

2024-09-30 01:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解sql to pandas数据帧数据类型发生了什么:

  • 用户_ID应为“object”。。这很好。在
  • 日期格式为201612、201701、201702等(年数+月数)
  • 收入是所有数值,如57.25、50、100.10等
  • 扣除也是数字的
  • 商店的数量自然是一个整数。。。在

我不明白为什么我的数据集将这些count和sum字段作为对象返回,因为我不能使用诸如df.总扣除额.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_数字(每个列,error='force')但是这个强制选项强制它们为“NaN”。在

既然我假设我做了一些明显不正确的事情,有人能假设这里发生了什么或者如何解决这个问题?在


Tags: to数据对象iddfsqlobjectcount

热门问题