Python Pandas : Counting the Frequency of unique values over all Columns

标签 python pandas count unique frequency

我有一个问题,如何计算 pandas 数据框每一列中出现的唯一值的数量?

假设我有一个名为 df 的数据框,如下所示:

1    2    3    4    
a    yes  f    c
b    no   f    e
c    yes  d    h

我想要获得显示四列中唯一值的频率的输出。输出将类似于以下内容:

Column    # of Unique Values
 1          3
 2          2
 3          2
 4          3

我不需要知道唯一值是什么,只需要知道每列中有多少个。

我玩过这样的东西:

df[all_cols].value_counts()

[all_cols] 是数据框中所有列的列表。但这是计算该值在列中出现的次数。

任何意见/建议都会有很大帮助。谢谢

最佳答案

您可以申请 Series.nunique:

>>> df.apply(pd.Series.nunique)
1    3
2    2
3    2
4    3
dtype: int64

或者您可以在框架的未堆叠版本上执行groupby/nunique:

>>> df.unstack().groupby(level=0).nunique()
1    3
2    2
3    2
4    3
dtype: int64

这两个都会生成一个系列,然后您可以使用它来构建具有您想要的任何列名称的框架。

关于Python Pandas : Counting the Frequency of unique values over all Columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36466341/

相关文章:

r - R如何根据现有数据创建列/功能

python - 使用 Python 创建 JSON

python - Pandas:更详细地从多列中删除空值

python - 使用pandas数据框中的正则表达式将所有数字(0和1除外)更改为0

php - Laravel 5.3 Pagination 总页数

php - 显示 2 个日期之间的行数

python - scrapy 蜘蛛停在第一个重复的项目

python - 将 Pandas 数据框中的行转换为列

python - Pandas:如何检测数据框中的峰值点(异常值)?

python - 如何更改 pandas 系列 datetime64 dtype 中所有实例的值