python - 自动拆分并生成列

标签 python python-3.x pandas split

df

fruit                want_split
apple    colour:red, like:yes, favourite:no
banana   colour:yellow, like:yes, favourite:no
pear     colour:green, like:yes, favourite:yes

有没有办法用逗号分割,然后自动生成列名,而不是手动? 预期输出:

fruit                want_split                  colour      like    favourite
apple    colour:red, like:yes, favourite:no     red        yes       no
banana   colour:yellow, like:yes, favourite:no  yellow     yes       no
pear     colour:green, like:yes, favourite:yes  green      yes       yes

最佳答案

您可以在str.splitexplode之后使用pivot/unstackjoin:

u = df['want_split'].str.split(",").explode().str.split(":",expand=True)
out = df.join(u.set_index(0,append=True)[1].unstack())

print(out)

     type                             want_split  favourite  like  colour
0   apple     colour:red, like:yes, favourite:no         no   yes     red
1  banana  colour:yellow, like:yes, favourite:no         no   yes  yellow
2    pear  colour:green, like:yes, favourite:yes        yes   yes   green

关于python - 自动拆分并生成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65552311/

相关文章:

python - 我可以 ssh 到服务器,然后使用 paramiko 在服务器上执行 sshfs 吗?

python - 将 Django channel 与现有 Django 3.1 wsgi 代码集成时出错

python - 如何在 Pandas 句子列中使用自动更正

python - 使用python计算每笔交易之间的时间差

python - pygame 屏幕仅在我将窗口移出屏幕时才起作用

python - Pandas基础数据分析 : connecting data types

Python更改csv文件中特定列的字符串(日期)格式

python - 如何在 Spyder 窗口中获取大数据帧的最后一条记录?

python - 将 winsound 转换为 linux 平台?

python - 单独线程中的 Pandas pd.concat() 显示没有加速