簡體   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