计算每个标记在 DataFrame 的每一行中出现的次数

Count how many times each token appears in each rows of a DataFrame

假设我有这样一个 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中的token之间用下划线分隔。

您可以使用 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