要按组分组并在pandas中创建额外的虚拟列,可以使用groupby()
函数和transform()
函数。
下面是一个示例代码,演示了如何按组分组并创建额外的虚拟列:
import pandas as pd
# 创建一个示例数据集
data = {
'Group': ['A', 'B', 'A', 'B', 'A', 'B'],
'Value': [1, 2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)
# 使用groupby()函数按组分组,并使用transform()函数创建额外的虚拟列
df['Sum'] = df.groupby('Group')['Value'].transform('sum')
df['Mean'] = df.groupby('Group')['Value'].transform('mean')
print(df)
输出结果:
Group Value Sum Mean
0 A 1 9 3.0
1 B 2 12 4.0
2 A 3 9 3.0
3 B 4 12 4.0
4 A 5 9 3.0
5 B 6 12 4.0
在这个示例中,我们首先创建了一个包含'Group'和'Value'两列的DataFrame。然后,我们使用groupby()
函数按'Group'列进行分组,并使用transform()
函数创建了两个额外的虚拟列'Sum'和'Mean',计算了每个组的值的总和和平均值。最后,我们将这两个虚拟列添加到原始的DataFrame中,并打印出结果。
这样,我们就成功地按组分组并创建了额外的虚拟列。