以下是一个使用pandas库来按照两列分组应用函数,并将结果保存到新列的示例代码:
import pandas as pd
# 创建一个示例数据集
data = {'Group': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'Value1': [1, 2, 3, 4, 5, 6, 7],
'Value2': [10, 20, 30, 40, 50, 60, 70]}
df = pd.DataFrame(data)
# 定义要应用的函数
def custom_function(group):
return group['Value1'].sum() / group['Value2'].mean()
# 按照Group列进行分组,并将函数应用于每个分组
df['NewColumn'] = df.groupby('Group').apply(custom_function)
print(df)
输出结果:
Group Value1 Value2 NewColumn
0 A 1 10 0.150000
1 A 2 20 0.150000
2 B 3 30 0.100000
3 B 4 40 0.100000
4 B 5 50 0.100000
5 C 6 60 0.071429
6 C 7 70 0.071429
在上面的示例中,我们首先创建了一个包含Group、Value1和Value2三列的数据集。然后,我们定义了一个名为custom_function的自定义函数,该函数计算每个分组中Value1列的总和除以Value2列的平均值。最后,我们使用groupby方法按照Group列进行分组,并使用apply方法将custom_function应用于每个分组。结果将保存在一个名为NewColumn的新列中。最后,我们打印出整个数据集以查看结果。