如何在Pandas中提取每行值为1的列名生成分类列
解决方案
假设使用Python的Pandas库处理该表格数据,具体步骤如下:
1. 构建示例数据集
import pandas as pd data = { 'A': ['foo', 'bar', 'baz'], 'B': [0, 0, 1], 'C': [1, 0, 1], 'D': [1, 1, 0] } df = pd.DataFrame(data)
2. 生成新列E
通过apply遍历每行,筛选出值为1的列名并拼接成字符串:
df['E'] = df.apply(lambda row: ', '.join(row[row == 1].index), axis=1)
3. 查看结果
运行上述代码后,df的内容即为目标表格:
| A | B | C | D | E |
|---|---|---|---|---|
| foo | 0 | 1 | 1 | C, D |
| bar | 0 | 0 | 1 | D |
| baz | 1 | 1 | 0 | B, C |
说明
axis=1表示按行处理数据row[row == 1].index会筛选出当前行中值为1的所有列名', '.join()将列名列表拼接为逗号分隔的字符串,适配多个值为1的列的情况
内容的提问来源于stack exchange,提问作者Dan G
相关产品推荐
相关产品推荐

