我想用以下函数f聚合一个熊猫DataFrame。原始的DataFrame df有很多列,我只想将其中的几个列提取到新的DataFrame中
我不明白为什么我必须返回系列赛。我认为我需要返回一个DataFrame,因为输出是多维的。
def f(x):
return Series(dict(Number_of_tweets = x['content'].count(),
Company=x['Company'].min(),
Description=x['from_user_description'].min(),
))
account_count = df.groupby('from_user_screen_name').apply(f)
print(len(account_count))
account_count
答案 0 :(得分:0)
您必须创建Series
,因为对于列from_user_screen_name
的每个值,每个列仅返回一个汇总值。最后groupby.apply
将所有Series
加入DataFrame
。
您的解决方案将针对agg
函数进行重写:
d = {'content': 'count','Company': 'min','from_user_description': 'min'}
account_count = df.groupby('from_user_screen_name').agg(d)