python 关于transform 应用

76 阅读1分钟

假设我们有一个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的每一行。