python - 发现每个职业的男性比例并将其从高到低排序
问题描述
表链接: https ://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user (separator=|) 我已经解决了我的代码
a=users.groupby(['occupation','gender']).gender.count()
b=users.groupby('occupation').gender.count()
c=(a/b)*100
c.sort_values(ascending=False).xs('M',level=1)
但有问题的是,需要使用 numpy.where() 对性别列进行编码,而我无法做到这一点。如何通过使用 numpy.where() 对性别列进行编码来解决它
解决方案
以下对我有用:
users['is_male'] = np.where(users.gender == 'M', 1, 0)
(users.groupby('occupation').is_male.sum()/users.groupby('occupation').gender.count()).round(2).sort_values(ascending = False)
推荐阅读
- java - 为什么 GUI 内容不可见?
- reactjs - ECharts + React:如果使用钩子,树形图不可扩展/折叠
- javascript - 如何从显示图像、脚本或其他资源的站点获取图像、脚本或其他资源,以便 src 能够在 HTML 中使用?
- javascript - 使用 useReducer 而不是 JSX 时反应渲染 [object Object]
- javascript - 如何在 JS 中展平 Float32Array?
- python - 使用 PySpark 将包含 200 万条记录的行转换为列
- arrays - 当我们的结构是一个数组时,我们如何访问结构的成员?
- python - 如何将二进制掩码填充为椭圆形(python)
- entity-framework-core - 使用自定义 SQL OnModelCreating 和/或紧随其后
- c# - 重新打开最小化窗口 Visual Studio 应用程序开发