python - Pandas - 一个单元格中多个值的 value_counts

标签 python pandas

我有一个数据框,其中有一列包含多个值,用逗号分隔,如下所示:

Country
Australia, Cuba, Argentina
Australia
United States, Canada, United Kingdom, Argentina

我想计算每个唯一值,类似于 value_counts,如下所示:

Australia: 2
Cuba: 1
Argentina: 2
United States: 1

我最简单的方法如下所示,但我怀疑这可以更有效、更整洁地完成。

from collections import Counter
Counter(pd.DataFrame(data['Country'].str.split(',', expand=True)).values.ravel())

干杯

最佳答案

您可以使用get_dummies

df.Country.str.get_dummies(sep=', ').sum()
Out[354]: 
Argentina         2
Australia         2
Canada            1
Cuba              1
United Kingdom    1
United States     1
dtype: int64

关于python - Pandas - 一个单元格中多个值的 value_counts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51128691/

相关文章:

python - 如何在 Tkinter 中按下 Tab 键后捕获文本小部件的值?

python - 使用 DataFrame 的两列计算一些指标

python - 计算每一行的大写字母

python - Openpyxl:确定单元格值中的哪个字符是删除线

python - 在 Python 中实现 OpenSSL AES 加密

python - 使用 DRF 时 API 响应时间太慢

python - 用 Pandas 查找两列或多列的最大值

python - df.columns 和 df2.columns 是同一个对象吗?

python - 统计按 ID 分组的列表中的更改

python - 遍历文件从列表中查找单词时的 findall() 正则表达式