计算每个令牌出现在DataFrame每行中的次数

时间:2018-07-28 14:37:44

标签: python pandas text counting

说我有一个像这样的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中的标记由下划线分隔。

1 个答案:

答案 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