以下是一个示例代码,根据年份对数据进行汇总,并将其作为分母应用于所选行:
import pandas as pd
# 创建示例数据
data = {'年份': [2018, 2018, 2019, 2019, 2020, 2020],
'数值': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 按年份对数据进行汇总,计算每个年份的总和
df_sum = df.groupby('年份')['数值'].sum().reset_index()
# 将每个年份的总和添加为新列
df_merged = df.merge(df_sum, on='年份', suffixes=['', '_总和'])
# 计算每个行的值除以对应年份的总和
df_merged['结果'] = df_merged['数值'] / df_merged['数值_总和']
# 打印结果
print(df_merged)
运行以上代码将输出以下结果:
年份 数值 数值_总和 结果
0 2018 10 30 0.333333
1 2018 20 30 0.666667
2 2019 30 70 0.428571
3 2019 40 70 0.571429
4 2020 50 110 0.454545
5 2020 60 110 0.545455
以上代码中,首先使用groupby
方法按照年份对数据进行分组,并计算每个年份的总和。然后,使用merge
方法将每个年份的总和与原始数据进行合并。最后,计算每个行的值除以对应年份的总和,并将结果保存在新列中。
上一篇:按年份对数据进行分组并总结值。
下一篇:按年份对数值进行分组