假设我们有一个DataFrame,其中包含了不同品类下的销售额数据:
import pandas as pd
data = {
'Category': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'Amount': [100, 200, 150, 300, 250, 120, 180]
}
df = pd.DataFrame(data)
print(df)
这将输出:
Category Amount
0 A 100
1 A 200
2 B 150
3 B 300
4 B 250
5 C 120
6 C 180
现在,我们想要将每个品类的总销售额添加为新列。我们可以使用.transform('sum')来实现:
df['Category_Total_Amount'] = df.groupby('Category')['Amount'].transform('sum')
print(df)
这将输出:
Category Amount Category_Total_Amount
0 A 100 300
1 A 200 300
2 B 150 700
3 B 300 700
4 B 250 700
5 C 120 300
6 C 180 300
在这个例子中,.transform('sum')计算了每个品类的总销售额,并将这些总额广播到原始DataFrame的每一行。