繁体   English   中英

Python Pandas:计算所有列上唯一值的频率

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

我有一个问题,如何计算 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] 是数据框中所有列的列表。 但这是计算该值在列中出现的次数。

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

你可以apply 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

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

你可以试试df.nunique()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM