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 在从 Pandas 0.20.0 开始的注释中添加,应该可以使用
DataFrame.nunique()
:df.select_dtypes(include=['object']).nunique()