python Pandas : split comma-separated column into new columns - one per value

标签 python pandas data-cleaning

我有一个像这样的数据框:

data = np.array([["userA","event2, event3"],
            ['userB',"event3, event4"],
            ['userC',"event2"]])

data = pd.DataFrame(data)

        0         1
0   userA   "event2, event3"
1   userB   "event3, event4"
2   userC   "event2"

现在我想得到一个像这样的数据框:

       0    event2      event3      event4
0   userA     1           1
1   userB                 1           1
2   userC     1

有人可以帮忙吗?

最佳答案

看来你需要 get_dummies0 替换为空 strings:

df = data[[0]].join(data[1].str.get_dummies(', ').replace(0, ''))
print (df)
       0 event2 event3 event4
0  userA      1      1       
1  userB             1      1
2  userC      1              

详细信息:

print (data[1].str.get_dummies(', '))
   event2  event3  event4
0       1       1       0
1       0       1       1
2       1       0       0

关于 python Pandas : split comma-separated column into new columns - one per value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58990512/

相关文章:

python - 3 个数据框和 3 个规则正在运行以将数据插入另一个数据框 - 没有公共(public)列 - 大数据

python - Python 寻址 CSV 文件中 Linux 和 Windows 的区别

python - 覆盖来自第三方应用程序的 URL 模式

python - 从 Yahoo! 下载 future 价格系列与 Pandas

python - 当某些值包含分隔符作为值的一部分时,如何将 "key=value, key=value, ..."转换为 csv?

python - 使用 Python Bottle 的 Webhelpers

python - 查找一列中与另一列中的某些值关联的值

python - 连接 pandas 数据框时出错

python - 将字典列表的列转换为列列表,以便从列表中每个字典下的键 "name"派生值

python - 我们如何使用某些条件根据不同的数据帧列替换一个数据帧的列值?