在Pandas中,可以使用groupby()
函数进行分组操作,并结合transform()
函数计算新列的结果。具体步骤如下:
import pandas as pd
df
。groupby()
函数按照需要分组的列进行分组,例如按照group_col
列进行分组:grouped = df.groupby('group_col')
transform()
函数结合自定义的计算函数对分组后的数据进行计算,例如计算列sum_col
的总和并除以分组的项数:result = grouped['sum_col'].transform(lambda x: x.sum() / len(x))
完整的代码示例如下:
import pandas as pd
# 创建DataFrame对象
df = pd.DataFrame({
'group_col': ['A', 'A', 'B', 'B', 'B'],
'sum_col': [1, 2, 3, 4, 5]
})
# 分组并计算新列
grouped = df.groupby('group_col')
result = grouped['sum_col'].transform(lambda x: x.sum() / len(x))
# 将结果添加到原DataFrame中
df['new_col'] = result
# 打印结果
print(df)
输出结果为:
group_col sum_col new_col
0 A 1 1.5
1 A 2 1.5
2 B 3 4.0
3 B 4 4.0
4 B 5 4.0
在这个例子中,我们按照group_col
列进行分组,然后计算sum_col
列的总和并除以分组的项数,将结果存储在新的列new_col
中。
领取专属 10元无门槛券
手把手带您无忧上云