聚合操作后取消分组 pandas 数据帧

Ungrouping a pandas dataframe after aggregation operation

我在我的数据框上使用了“groupby”方法来查找每个位置的总人数。

在“总和”列的右侧,我需要添加一个列,列出每个位置的所有人员姓名(最好在单独的行中,但列表也可以)。

有没有办法在找到总和后再次“取消分组”我的数据框?

 dataframe.groupby(by=['location'], as_index=False)['people'].agg('sum')

我想你在找 'transform' ?

dataframe.groupby(by=['location'], as_index=False)['people'].transform('sum')

您可以做两种不同的事情:

(1) 使用groupby.agg 并调用适当的方法创建聚合DataFrame。下面的代码列出了与位置对应的所有名称:

out = dataframe.groupby(by=['location'], as_index=False).agg({'people':'sum', 'name':list})

(2) 使用 groupby.transformdataframe 添加一个新列,其中包含每行中按位置划分的人数总和:

dataframe['sum'] = dataframe.groupby(by=['location'])['people'].transform('sum')