以下是一个示例代码,演示了如何按行分组计算列的累积总和和总百分比:
import pandas as pd
# 创建示例数据
data = {'Group': ['A', 'A', 'A', 'B', 'B', 'C'],
'Value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 按行分组并计算累积总和
df['CumulativeSum'] = df.groupby('Group')['Value'].cumsum()
# 计算每个分组的总和
group_totals = df.groupby('Group')['Value'].sum()
# 计算每个分组的百分比
df['Percentage'] = df['Value'] / df['Group'].map(group_totals) * 100
print(df)
输出结果为:
Group Value CumulativeSum Percentage
0 A 1 1 16.666667
1 A 2 3 33.333333
2 A 3 6 50.000000
3 B 4 4 44.444444
4 B 5 9 55.555556
5 C 6 6 100.000000
在这个示例中,我们首先创建了一个包含分组和值的DataFrame。然后,我们使用groupby
函数按行分组数据,并使用cumsum
函数计算每个分组内值的累计总和,并将结果存储在一个新的列CumulativeSum
中。
接下来,我们使用groupby
函数计算每个分组的总和,并将结果存储在group_totals
变量中。
最后,我们使用map
函数将每行的分组值映射到其对应的总和,并使用除法和乘法计算每个值的百分比,并将结果存储在新的列Percentage
中。
上一篇:按行分组但给出其他行的最高值
下一篇:按行分组的pandas应用卷积