[英]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.