假设我们有以下数据框:
import pandas as pd
data = {'group': ['A', 'A', 'B', 'B'], 'col1': [1, 2, 3, 4], 'col2': [5, 6, 7, 8]}
df = pd.DataFrame(data)
df
输出:
group col1 col2
0 A 1 5
1 A 2 6
2 B 3 7
3 B 4 8
现在我们想要创建一个新的列,名为“col3”,它是基于“group”列和“col1”列和“col2”列的值计算而来的,具体公式为:
col3 = col1/col2 的平均值,对于每个“group”
为了实现这个目标,我们可以使用Pandas groupby()函数和transform()函数。
df['col3'] = df.groupby('group')[['col1', 'col2']].transform(lambda x: x['col1']/x['col2']).mean(axis=1)
df
输出:
group col1 col2 col3
0 A 1 5 0.30
1 A 2 6 0.30
2 B 3 7 0.43
3 B 4 8 0.43
通过上述代码,我们已经成功地创建了一个新的列“col3”,它是基于“group”列和“col1”列和“col2”列的值计算而来的。