下面是一个小例子:
import pandas as pd
category_list_1 = ['Album','Album','Album','Album','Album','Footballer','Footballer','Footballer']
value_list_1 = ['Alligator','Alligator','Cherry Tree','Cherry Tree','Cherry Tree','Nolberto Solano','Nolberto Solano', 'Laurent Robert']
df_1 = pd.DataFrame({'Category':category_list_1,'Value':value_list_1})
category_list_2 = ['Album','Album','Album','Album','Footballer','Footballer','Footballer']
value_list_2 = ['Alligator','Alligator','Cherry Tree','Cherry Tree','Nolberto Solano','Nolberto Solano', 'Laurent Robert']
df_2 = pd.DataFrame({'Category':category_list_2,'Value':value_list_2})
df_1_agg = df_1.groupby(['Category'])['Value'].agg(pd.Series.mode)
print(df_1_agg)
df_2_agg = df_2.groupby(['Category'])['Value'].agg(pd.Series.mode)
print(df_2_agg)
df_1_agg
工作正常,因为每个类别都有一个真正的模态值。但是对于df_2_agg
,我希望它返回模态相册的任意一个值。但是,我得到的却是错误:
Exception: Must produce aggregated value
我可以使用lambda函数作为解决方法,例如:
df_2_agg = df_2.groupby(['Category']).agg(lambda x:x.value_counts().index[0])
print(df_2_agg)
然而,我认为对于较大的数据集来说,这可能要慢得多。有没有办法在熊猫内部产生这种类型的输出
目前没有回答
相关问题 更多 >
编程相关推荐