python - 将列值附加到 Pandas 数据框中同一行的新单元格中
问题描述
我有一个 csv 文件,其中包含name
、sub_a
、sub_b
、sub_c
、sub_d
、segment
和gender
. 我想创建一个新列,其中包含每个学生学习classes
的所有课程(sub
-columns),用逗号分隔。
完成此任务的最简单方法是什么?
结果数据框应如下所示:
+------+-------+-------+-------+-------+---------+--------+---------------------+
| name | sub_a | sub_b | sub_c | sub_d | segment | gender | classes |
+------+-------+-------+-------+-------+---------+--------+---------------------+
| john | 1 | 1 | 0 | 1 | 1 | 0 | sub_a, sub_b, sub_d |
+------+-------+-------+-------+-------+---------+--------+---------------------+
| mike | 1 | 0 | 1 | 1 | 0 | 0 | sub_a, sub_c, sub_d |
+------+-------+-------+-------+-------+---------+--------+---------------------+
| mary | 1 | 1 | 0 | 1 | 1 | 1 | sub_a, sub_b, sub_d |
+------+-------+-------+-------+-------+---------+--------+---------------------+
| fred | 1 | 0 | 1 | 0 | 0 | 0 | sub_a, sub_c |
+------+-------+-------+-------+-------+---------+--------+---------------------+
解决方案
让我们试试dot
s=df.filter(like='sub')
df['classes']=s.astype(bool).dot(s.columns+',').str[:-1]
推荐阅读
- php - 如何让 PHP 执行从数组到脚本的多次调用并等待每个函数结束后再继续?
- nativescript - Nativescript Video 观察 playFromUrl 的当前时间
- netsuite - 如何在 Netsuite suitscript 2.0 中知道该字段是依赖的并获取依赖值?
- python - 不能 pip microsoft azure-cognitiveservices-speech?
- html - FormView 上的命名空间前缀 asp 未定义 - 我的页面指令是什么?
- php - 使用套接字将 JSON 数据发布到 PHP 页面时出现 400 错误请求
- firebase - 使用 firebase 函数进行数学计算
- google-cloud-vision - Does Google Cloud Vision API have a feature to extract the age from an image of a face?
- google-chrome - 通过 Chrome 的 USB API 打印收据
- editor - Sublime:如何通过 CamelCase 变量中的单个单词进行选择?