python - python - 如何将从单个分类变量创建的多个虚拟变量列合并到python中的单个列中?
问题描述
我正在研究具有许多分类变量的 IPL 数据集,其中一个变量是 toss_winner。我为此创建了虚拟变量,现在我有 15 列具有二进制值。我想将所有这些列合并为单列,每个数字代表 IPL 团队的数字 0-14。
解决方案
IIUC,用途:
df['Team No.'] = dummies.cumsum(axis=1).ne(1).sum(axis=1)
例子,
df = pd.DataFrame({'Toss winner': ['Chennai', 'Mumbai', 'Rajasthan', 'Banglore', 'Hyderabad']})
dummies = pd.get_dummies(df['Toss winner'])
df['Team No.'] = dummies.cumsum(axis=1).ne(1).sum(axis=1)
结果:
# print(dummies)
Banglore Chennai Hyderabad Mumbai Rajasthan
0 0 1 0 0 0
1 0 0 0 1 0
2 0 0 0 0 1
3 1 0 0 0 0
4 0 0 1 0 0
# print (df)
Toss winner Team No.
0 Chennai 1
1 Mumbai 3
2 Rajasthan 4
3 Banglore 0
4 Hyderabad 2
推荐阅读
- java - 在 jmeter beanshell 代码中使用 List 时在 Jmeter 中遇到“=”错误
- android - 如何显示对话框以确认用户希望退出活动?
- javascript - 角度http请求调用多次
- ansible - Ansible/Jinja:如何将数字转换为二进制格式
- vba - 访问 VBA 错误“这种类型的对象不支持操作”
- python-3.x - 在Python中通过套接字将鼠标和键盘输入从服务器发送到客户端?
- php - 不用curl获取php-fpm进程信息
- r - 如何在 R 中读取 .sas7bvew 文件?
- android-sdk-tools - 我无法使用附加组件安装 SDK 命令工具
- python - Pandas lambda 多个参数作为回报