import pandas as pd
df = pd.DataFrame({'a':[1,2,3,4],'b':['a','b','d','d'],'c':['v','v','g','w']})
print(df.apply(lambda x: x.unique().shape[0]))
上面的代碼將打印每列中唯一值的計數。我只想打印「對象」類型的列的唯一值的計數。在熊貓數據框中打印唯一值
有什麼辦法僅過濾「對象」列
import pandas as pd
df = pd.DataFrame({'a':[1,2,3,4],'b':['a','b','d','d'],'c':['v','v','g','w']})
print(df.apply(lambda x: x.unique().shape[0]))
上面的代碼將打印每列中唯一值的計數。我只想打印「對象」類型的列的唯一值的計數。在熊貓數據框中打印唯一值
有什麼辦法僅過濾「對象」列
您可以使用select_dtypes()
爲@JulianCienfuegos已經結合nunique()說:
In [9]: df.select_dtypes(include=['object']).apply(lambda x: x.nunique())
Out[9]:
b 3
c 3
dtype: int64
由於@root在註釋中增加了開始大熊貓0.20.0應該儘可能使用DataFrame.nunique()
:
df.select_dtypes(include=['object']).nunique()
使用df.dtypes
df.loc[:, df.dtypes == object].apply(pd.Series.nunique)
b 3
c 3
dtype: int64
你將要檢查[這裏](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.select_dtypes.html) – MattR