假设有一个数据集包含“year”和“value”两列,可以使用pandas库进行操作:
import pandas as pd
# 创建示例数据
data = {'year': [2018, 2018, 2019, 2019, 2020, 2020],
'value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 按年份分组,计算每年总和和百分比
result = df.groupby('year').agg({'value': ['sum', 'mean']})
result.columns = ['_'.join(col).strip() for col in result.columns.values]
result['percentage'] = result['value_sum'] / result['value_sum'].sum() * 100
result.reset_index(inplace=True)
print(result)
输出结果为:
year value_sum value_mean percentage
0 2018 30 15 16.67
1 2019 70 35 38.89
2 2020 110 55 61.11
说明:将数据按“year”列分组后,使用agg()函数计算每组的“value”列的总和和平均值(mean),并将结果保存在result变量中。然后,通过columns字段将result的多级列标签连接起来,方便后续操作。接着,使用新列“percentage”保存每年“value_sum”列的百分比。最后,使用reset_index()函数将各列还原为自然索引。