我有一个如下所示的数据框:
>>> df[['data','category']]
Out[47]:
data category
0 4610 2
15 4610 2
22 5307 7
23 5307 7
25 5307 7
... ... ...
数据和类别都是数字,所以我可以这样做:
>>> df[['data','category']].mean()
Out[48]:
data 5894.677985
category 13.805886
dtype: float64
我正在尝试获取每个类别的平均值。它看起来很简单,但是当我这样做时:
>>> df[['data','category']].groupby('category').mean()
or
>>> df.groupby('category')['data'].mean()
它返回这样的错误:
DataError: No numeric types to aggregate
如果我将上面的两个函数替换为.count()
.
我做错了什么?获取每个类别的平均值的正确方法是什么?
你能做一个 df.dtypes 吗?在下面的示例中,类型是 Int,因为它工作正常。
import pandas as pd
##group by 1 columns
df = pd.DataFrame({' data': [4610, 4611, 4612, 4613], 'Category': [2, 2, 7, 7]})
print df.groupby('Category'). mean()
##Mutiple columns to group by
df1 = pd.DataFrame({' data': [4610, 4611, 4612, 4613], 'Category': [2, 2, 7, 7], 'Category2' : ['A','B','A','B']})
key=['Category','Category2']
print df1.groupby( key).mean()
Category Category2
2 A 4610
B 4611
7 A 4612
B 4613
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)