Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 - Fatal编程技术网

如何在python中将文本转换为多列?

如何在python中将文本转换为多列?,python,pandas,Python,Pandas,假设现在我有以下数据帧: id text 1 A B C 2 B D 3 A D 我想得到以下结果: id A B C D 1 1 1 1 0 2 0 1 0 1 3 1 0 0 1 我不知道如何描述这个转换,它看起来像一个热编码,但它们应该完全不同 任何人都知道如何进行这种转换,这种转换的名称是什么?一种方法是通过pd.get\u dummies: 一种方法是通过pd.get_假人: 类似str.get_假人的东西 类似str.get_假人的东西 很好地使用了get_假人!这个

假设现在我有以下数据帧:

id text
1  A B C
2  B D
3  A D
我想得到以下结果:

id A B C D
1  1 1 1 0
2  0 1 0 1
3  1 0 0 1
我不知道如何描述这个转换,它看起来像一个热编码,但它们应该完全不同

任何人都知道如何进行这种转换,这种转换的名称是什么?

一种方法是通过pd.get\u dummies:

一种方法是通过pd.get_假人:

类似str.get_假人的东西

类似str.get_假人的东西


很好地使用了get_假人!这个版本比我的好+1.我的版本不知道sep参数。很好地使用了get_假人!这个版本比我的好+1.我的版本不知道sep参数。
df = pd.DataFrame({'id': [1, 2, 3],
                   'text': ['A B C', 'B D', 'A D']})

df['text'] = df['text'].str.split(' ').str.join('|')

df = df.join(df['text'].str.get_dummies()).drop('text', 1)

#    id  A  B  C  D
# 0   1  1  1  1  0
# 1   2  0  1  0  1
# 2   3  1  0  0  1
pd.concat([df['id'],df.text.str.get_dummies(sep=' ')],1)
Out[249]: 
   id  A  B  C  D
0   1  1  1  1  0
1   2  0  1  0  1
2   3  1  0  0  1