想要 get_dummies 获取列中最频繁出现的值 - Pandas

Wanting to get_dummies for the most frequest values in a column - Pandas

我正在开发一个程序来浏览推文并预测作者是否属于两类之一。我想 get_dummies 了解一条推文是否包含前 10 个主题标签中的任何一个,或者它是否包含 'other'。 (最后我可能会使用前 500 个左右的主题标签,而不仅仅是 10 个,数据集总共超过 500,000 列,有超过 50,000 个独特的主题标签)

这是我第一次使用 pandas,如果我的问题不清楚,我深表歉意,但我想我期望的是数据集中的每一行都会有一个新列,每行一个标签,然后如果该行包含该标签,则该 [行][列] 对的值将为 1,否则为 0。还会有一个 other 列,表示它有其他不在前 10 名中的主题标签。

我知道如何确定列中出现频率最高的已经

counts = df.hashtags.value_counts()
counts.nlargest(10)

我也知道如何获取假人,我只是不知道如何添加不为每个主题标签制作一个的参数。

dummies = pd.get_dummies(df, columns=['hashtags'])

如果我可以更清楚或提供更多信息,请告诉我。感谢您的帮助!

没有时间生成数据并全力以赴。但是,尽管我会为您提供这个想法,以防它对您有所帮助。

这个想法是利用 .isin() 来获取构建假人所需的值。然后利用索引的力量来匹配源行。

类似于:

pd.get_dummies(df.loc[df['hashtags'].isin(counts.nlargest(10).index)], columns=['hashtags']) 

您将不得不看看指数是否能满足您的需求。