如何在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