Finding count of distinct elements in DataFrame in each column

前端 未结 8 1205
半阙折子戏
半阙折子戏 2020-12-02 18:27

I am trying to find the count of distinct values in each column using Pandas. This is what I did.

import pandas as pd
import numpy as np

# Generate data.
NR         


        
8条回答
  •  孤街浪徒
    2020-12-02 18:47

    As of pandas 0.20 we can use nunique directly on DataFrames, i.e.:

    df.nunique()
    a    4
    b    5
    c    1
    dtype: int64
    

    Other legacy options:

    You could do a transpose of the df and then using apply call nunique row-wise:

    In [205]:
    df = pd.DataFrame({'a':[0,1,1,2,3],'b':[1,2,3,4,5],'c':[1,1,1,1,1]})
    df
    
    Out[205]:
       a  b  c
    0  0  1  1
    1  1  2  1
    2  1  3  1
    3  2  4  1
    4  3  5  1
    
    In [206]:
    df.T.apply(lambda x: x.nunique(), axis=1)
    
    Out[206]:
    a    4
    b    5
    c    1
    dtype: int64
    

    EDIT

    As pointed out by @ajcr the transpose is unnecessary:

    In [208]:
    df.apply(pd.Series.nunique)
    
    Out[208]:
    a    4
    b    5
    c    1
    dtype: int64
    

提交回复
热议问题