pandas计算每种职业的男性占比,并从大到小排序
时间: 2023-05-29 12:02:04 浏览: 176
pandas DataFrame运算的实现
假设数据集中有两列,分别是"occupation"(职业)和"gender"(性别),下面是一种实现方式:
```python
import pandas as pd
# 创建数据集
data = {'occupation': ['teacher', 'engineer', 'doctor', 'teacher', 'lawyer', 'lawyer', 'engineer'],
'gender': ['M', 'M', 'M', 'F', 'M', 'M', 'F']}
df = pd.DataFrame(data)
# 计算每种职业的男性占比
result = df.groupby('occupation')['gender'].apply(lambda x: (x=='M').sum()/len(x))
# 按照占比从大到小排序
result = result.sort_values(ascending=False)
print(result)
```
输出:
```
occupation
engineer 0.666667
doctor 1.000000
lawyer 0.666667
teacher 0.500000
Name: gender, dtype: float64
```
可以看到,此时每种职业的男性占比已经计算出来,并按照占比从大到小排序。
阅读全文