假设我正在尝试创建一些 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/