Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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 当不同的类别连接成一个没有分隔符的字符串时,如何在Pandas中使用get_假人?_Python_Pandas - Fatal编程技术网

Python 当不同的类别连接成一个没有分隔符的字符串时,如何在Pandas中使用get_假人?

Python 当不同的类别连接成一个没有分隔符的字符串时,如何在Pandas中使用get_假人?,python,pandas,Python,Pandas,考虑下面的例子 df=pd.DataFrame({'col':['ABC','BDE','DE',np.nan,]}) df Out[216]: col 0 ABC 1 BDE 2 DE 3 NaN 我想为col中的每个字母创建一个虚拟变量 在本例中,我们有5个假人:A、B、C、D、E。实际上,在第一行中,“ABC”对应于类别A、类别B和类别C 使用get_dummies失败 df.col.str.get_dummies(sep='') Out[217]: ABC

考虑下面的例子

df=pd.DataFrame({'col':['ABC','BDE','DE',np.nan,]})

df
Out[216]: 
   col
0  ABC
1  BDE
2   DE
3  NaN
我想为col中的每个字母创建一个虚拟变量

在本例中,我们有5个假人:A、B、C、D、E。实际上,在第一行中,
“ABC”
对应于类别A、类别B和类别C

使用
get_dummies
失败

df.col.str.get_dummies(sep='')
Out[217]: 
   ABC  BDE  DE
0    1    0   0
1    0    1   1
2    0    0   1
3    0    0   0
实际上,第一行的预期输出应该是

    A  B  C  D  E
0   1  1  1  0  0
你还有其他想法吗?
谢谢

您可以使用
Series.str.join
在每个字符之间引入分隔符,然后使用
get\u dummies

df.col.str.join('|').str.get_dummies()
结果输出:

   A  B  C  D  E
0  1  1  1  0  0
1  0  1  0  1  1
2  0  0  0  1  1
3  0  0  0  0  0

您可以使用
Series.str.join
在每个字符之间引入分隔符,然后使用
get\u dummies

df.col.str.join('|').str.get_dummies()
结果输出:

   A  B  C  D  E
0  1  1  1  0  0
1  0  1  0  1  1
2  0  0  0  1  1
3  0  0  0  0  0