Python 熊猫分组依据、筛选和聚合
我有一个像Python 熊猫分组依据、筛选和聚合,python,pandas,filter,group-by,aggregate,Python,Pandas,Filter,Group By,Aggregate,我有一个像 import pandas as pd import numpy as np d = {'id':[1,2,3,4,3,3,1,6], 'type':['t2','t1','t2','t2','t3','t3','t4','t3']} df = pd.DataFrame(data=d) 目标是获得一个按id分组的数据帧,并在每个组中具有每种类型的nunique 我以为这会解决问题,但似乎不起作用: df.groupby('id').agg({'type':pd.Series.nun
import pandas as pd
import numpy as np
d = {'id':[1,2,3,4,3,3,1,6], 'type':['t2','t1','t2','t2','t3','t3','t4','t3']}
df = pd.DataFrame(data=d)
目标是获得一个按id分组的数据帧,并在每个组中具有每种类型的nunique
我以为这会解决问题,但似乎不起作用:
df.groupby('id').agg({'type':pd.Series.nunique()})
您只需首先访问
type
系列groupby,就可以更简单地完成这项工作
>>> df.groupby('id').type.nunique()
id
1 2
2 1
3 2
4 1
6 1
如注释中所述,您当前的方法不能像预期的那样使用它可以调用的函数对象(
nunique
),而不是像您使用nunique()
那样实际尝试调用函数 从nunique
中删除()
,因为您希望传递对函数的引用,而不是调用它df.groupby(by='id').agg(pd.Series.nunique)
将完成此任务。谢谢@dnswlt-i new,这是一个简单的任务。