要按分组后的列的百分比进行计算,可以使用Pandas库中的groupby()和transform()函数来实现。下面是一个示例代码:
import pandas as pd
# 创建示例数据
data = {'Group': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(data)
# 按Group列进行分组,并计算每个分组的总和
grouped = df.groupby('Group')['Value'].transform('sum')
# 计算每个值相对于其分组总和的百分比
df['Percentage'] = df['Value'] / grouped * 100
# 打印结果
print(df)
运行上述代码,将得到如下输出:
Group Value Percentage
0 A 1 33.333333
1 A 2 66.666667
2 B 3 25.000000
3 B 4 33.333333
4 B 5 41.666667
5 C 6 46.153846
6 C 7 53.846154
在这个示例中,我们首先使用groupby()函数按Group列对数据进行分组,并使用transform()函数计算每个分组的总和。然后,我们通过将每个值除以其分组总和,并乘以100,计算每个值相对于其分组总和的百分比。最后,我们将计算结果存储在新的列Percentage中。