Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对具有多个值的字符串列执行二进制编码_Python_Pandas_Dataframe - Fatal编程技术网

Python 对具有多个值的字符串列执行二进制编码

Python 对具有多个值的字符串列执行二进制编码,python,pandas,dataframe,Python,Pandas,Dataframe,我有一张这样的床单 taglist 0 1|2|3 1 2|3|4 taglist = DataFrame(taglist.str.split('|',expand = True)) 我可以将其转换为: 0 1 2 0 1 2 3 1 2 3 4 但是,我希望它是这样的: 在同一列中使用相同的数字并使用Onehotencoder 1 2 3 4 0 1 1 1 0 1

我有一张这样的床单

 taglist
0  1|2|3
1  2|3|4


taglist = DataFrame(taglist.str.split('|',expand = True))
我可以将其转换为:

    0     1     2  
0   1     2     3
1   2     3     4
但是,我希望它是这样的: 在同一列中使用相同的数字并使用Onehotencoder

      1   2   3  4
0     1   1   1  0
1     0   1   1  1

有什么方法可以做到这一点吗?

这是一个简单的编码问题,您可以使用
str.get\u dummies
来做到这一点:

df['taglist'].str.get_dummies(sep='|')

   1  2  3  4
0  1  1  1  0
1  0  1  1  1
或者,在
str.split
的基础上,我们也可以使用

split = df['taglist'].str.split('|', expand=True)
pd.get_dummies(split, prefix='', prefix_sep='').sum(level=0, axis=1)

   1  2  3  4
0  1  1  1  0
1  0  1  1  1

@雷为你找到了更好的解决办法。谢谢