如何获取 pandas 数据帧列中以逗号分隔的值的频率计数?



假设我正在尝试创建一些堆栈溢出元数据的计数向量(实际上不是我在做什么,而是类似的(。因此,数据帧可能如下所示:

question:    description:      tags:
Q1           desc1             java, android
Q2           desc2             python, machine learning
Q3           desc3             javascript, Node.js

如果我想使用每个单独的标签而不是标签的组合来创建频率计数,我将如何做到这一点?

我知道我可以使用df.groupby('tags').count(),但这只会将java, android视为自己的类别,而不是将java视为一个类别,而将'android视为一个单独的类别。

您可以使用正则表达式,s+str.split用于带有一个或多个空格的逗号,然后按stack创建Series,最后按Series.value_counts获取计数:

out = df['tags'].str.split(',s+', expand=True).stack().value_counts()
print (out)
python              1
javascript          1
machine learning    1
java                1
android             1
Node.js             1
dtype: int64

最新更新