【问题标题】:Python Pandas: Counting the Frequency of unique values over all ColumnsPython Pandas:计算所有列中唯一值的频率
【发布时间】:2016-04-07 03:46:28
【问题描述】:

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

假设我有一个名为 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] 是数据框中所有列的列表。但这是计算该值在列中出现的次数。

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

【问题讨论】:

    标签: python pandas count unique frequency


    【解决方案1】:

    你可以applySeries.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
    

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

    【讨论】:

    • 非常感谢,这正是我想要的。感谢您的帮助!
    • @da4l 不要说谢谢,直接点赞和接受按钮
    【解决方案2】:

    你可以试试df.nunique()

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多