如何使用numpy.where编码性别列以计算各职业男性占比并降序排序
实现代码及说明
首先导入依赖库并读取数据:
import pandas as pd import numpy as np # 读取分隔符为|的用户数据 users = pd.read_csv('https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user', sep='|', index_col='user_id')
使用numpy.where()对gender列进行编码,将男性'M'标记为1,女性'F'标记为0:
users['gender_encoded'] = np.where(users['gender'] == 'M', 1, 0)
基于编码后的字段计算各职业男性占比,输出结果和你原有代码逻辑完全一致:
# 按职业分组计算男性总数、职业总人数 occ_group = users.groupby('occupation')['gender_encoded'].agg(male_count='sum', total_count='count') # 计算男性占比并按降序排序 res = (occ_group['male_count'] / occ_group['total_count'] * 100).sort_values(ascending=False)
内容的提问来源于stack exchange,提问作者user14286489
相关产品推荐
相关产品推荐

