首页 > 解决方案 > 如何将单个 df col 映射到多个“复选框”cols

问题描述

我正在尝试准备一个 csv,以便从另一个工具导出的 csv 导入调查工具。我需要将一个 df 中的一列值映射到多个列中,以满足另一个 csv 的复选框。

例如,我的起始 df (df1) 和目标 df (df2) 如下所示:

import pandas as pd
df1 = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice']})
df2 = pd.DataFrame({'Bob': [0,0,0], 'Jane': [0,0,0], 'Alice': [0,0,0]}) 

我试过了:

for value in df1["User"]:
    if value == "Bob":
        df2['Bob'] = 1
    elif value == "Jane":
        df2['Jane'] = 1
    elif value == "Alice":
        df2['Alice'] = 1

但我最终在每一行和每一列都有一个“1”。

结果:


  Bob Jane Alice
0   1   1   1
1   1   1   1
2   1   1   1

我正在尝试创建:

  Bob Jane Alice
0   1   0   0
1   0   1   0
2   0   0   1

我错过了什么?

标签: python

解决方案


尝试使用:

pd.get_dummies(df1["User"])

推荐阅读