从groupby创建新的列表列值可以通过以下步骤实现:
以下是一个示例代码:
import pandas as pd
# 原始数据
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]}
df = pd.DataFrame(data)
# 按列A进行分组,并对列C和列D求和
grouped = df.groupby('A').agg({'C': 'sum', 'D': 'sum'})
# 将生成的新列值添加到原始数据中
df = df.merge(grouped, left_on='A', right_index=True)
print(df)
输出结果如下:
A B C D
0 foo one 16 170
2 foo two 16 170
4 foo two 16 170
6 foo two 16 170
7 foo one 16 170
1 bar one 6 60
3 bar two 6 60
5 bar one 6 60
在这个示例中,我们按照列A进行分组,并对列C和列D进行求和。然后将生成的新列值添加到原始数据中。最终输出的结果中,每个组的新列值都是相同的。
领取专属 10元无门槛券
手把手带您无忧上云