在pandas中如何在一个column里只有male和female两种选项,另一个column里有1到5的数字随机分配,如何得到在1到5这5个等级中male和female分别的数量是多少,并做出一个新的dataframe
时间: 2023-07-16 18:16:38 浏览: 130
cape-python:协作制定Pandas和Apache Spark中数据科学项目的隐私保护策略
可以使用pandas的groupby函数来实现。
首先,假设你的DataFrame名字为df,其中包含两个列,一个是gender,另一个是rating,gender列只包含male和female两种选项,rating列包含1到5的数字随机分配。可以按照如下方式计算每个等级下male和female的数量:
```
gender_count = df.groupby(['rating','gender']).size().unstack()
```
这将返回一个新的DataFrame,其中每一行表示一个等级,每一列表示一个性别。值表示该等级下该性别的数量。可以使用fillna函数将NaN值替换为0:
```
gender_count = gender_count.fillna(0)
```
最后,你可以根据需要创建一个新的DataFrame:
```
new_df = pd.DataFrame({'male': gender_count['male'], 'female': gender_count['female']})
```
这将创建一个新的DataFrame,其中包含两列,一个是male,另一个是female,分别对应于每个等级下的男性和女性数量。
阅读全文