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