pandas分组求百分比
时间: 2023-08-04 15:05:42 浏览: 138
Pandas实现DataFrame按行求百分数(比例数)
要在 Pandas 中进行分组并求百分比,你可以使用 `groupby()` 方法来对数据进行分组,然后使用 `transform()` 方法结合一些聚合函数来计算百分比。
下面是一个示例,假设你有一个 DataFrame `df` 包含两列 'Category' 和 'Value',你想要计算每个类别的值占总值的百分比:
```python
import pandas as pd
# 创建示例数据
data = {'Category': ['A', 'A', 'B', 'B', 'B', 'C'],
'Value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 计算每个类别的值占总值的百分比
df['Percentage'] = df.groupby('Category')['Value'].transform(lambda x: x / x.sum() * 100)
print(df)
```
输出结果如下:
```
Category Value Percentage
0 A 10 33.333333
1 A 20 66.666667
2 B 30 25.000000
3 B 40 33.333333
4 B 50 41.666667
5 C 60 100.000000
```
在上述示例中,`groupby('Category')['Value']` 对数据按照 'Category' 列进行分组,并选择 'Value' 列进行计算。然后使用 `transform()` 方法应用一个匿名函数,该函数将每个组内的值除以该组内所有值的总和,并乘以 100,最后将结果赋给 'Percentage' 列。
这样,你就可以得到每个类别的值占总值的百分比。
阅读全文