说我有一个像这样的DataFrame:
df = pd.DataFrame(['spam_eggs', 'tomato_spam'], columns=['Monty'])
我想最终得到一个看起来像这样的DataFrame:
Monty_eggs Monty_spam Monty_tomato
0 1.000000 1.000000 0.000000
1 0.000000 1.000000 1.000000
也就是说-对于每一行,计算令牌出现的次数。原始DataFrame中的标记由下划线分隔。
答案 0 :(得分:2)
您可以使用pd.Series.get_dummies
,它具有一个有用的sep
参数。
df = pd.DataFrame(['spam_eggs', 'tomato_spam'], columns=['Monty'])
df = df['Monty'].str.get_dummies(sep='_').add_prefix(df.columns[0]+'_')
print(df)
Monty_eggs Monty_spam Monty_tomato
0 1 1 0
1 0 1 1