python-3.x TypeError:datetime64类型不支持求和运算

jdg4fx2g  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(162)

TypeError Traceback(most recent call last)Cell In[31],line 1 -> 1 df_销售.pivot_table(index='Gender',aggfunc='sum')
附件是我的数据框架从谷歌excel表生成。enter image description here
TypeError:datetime 64类型不支持求和运算
我试图使用pivot_table()方法创建一个pivot表。然后我尝试显示所有数值列的总和。但由于日期和时间列(我打赌它们被认为是数值列),它会抛出错误。这个问题的最佳解决方案是什么?
我在jupyter notebook中运行的命令:df_sale.pivot_table(index='Gender', aggfunc='sum')

q35jwt9p

q35jwt9p1#

这里最简单的是聚合sumnumeric_only=True参数:

rng = pd.date_range('2017-04-03', periods=10)
df_sale = pd.DataFrame({'Date': rng, 'a': range(10), 'Gender':list('fffffmmmmm')})  

df = df_sale.groupby('Gender').sum(numeric_only=True)
print (df)
         a
Gender    
f       10
m       35

字符串
如果通过DataFrame.select_dtypes选择数值列并将Gender列转换为DataFrame.set_index索引,则解决方案有效,因为Gender列是非数值列:

df = (df_sale.set_index('Gender')
             .select_dtypes(np.number)
             .pivot_table(index='Gender', aggfunc='sum'))
print (df)
         a
Gender    
f       10
m       35

相关问题