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

标签 python pandas dataframe

假设我正在尝试创建一些 stackoverflow 元数据的计数向量(实际上不是我正在做的事情,但类似)。所以 DataFrame 可能看起来像这样:

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 成为一个单独的类别。

最佳答案

您可以使用str.split通过正则表达式 ,s\+ 表示带有一个或多个空格的逗号,然后通过 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

关于python - 如何获取 pandas 数据框列中以逗号分隔的值的频率计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52575354/

相关文章:

python-3.x - Pandas操作,将多个结果放入df列

python - 使用 Google Colab 改回 CPU

python - cvtColor() 转换为 LAB 颜色空间后的 Numpy 8 位和 32 位图像数据类型

python - Pandas:为什么在 boolean 索引后需要双括号来选择列

python - 如何将来自另一列的唯一计数的数据框列添加到某些但不是所有其他列?

python - 在循环中替换 Pandas 数据框中的值

r - 将多个列表列组合成 R 中的一个列表列?

python - `error: unbalanced parenthesis` 检查项目是否出现在 pandas 数据框中

python - 如何通过 id 连接两个模型(没有外键)并按管理中的链接模型字段排序

python - 使用 python 将每一列存储在单独的字典中