【问题标题】:print unique values in pandas data frame在熊猫数据框中打印唯一值
【发布时间】:2017-03-18 01:30:54
【问题描述】:
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]))

上面的代码将打印每列中唯一值的计数。我只想为“对象”类型的列打印唯一值的计数。

有没有办法只过滤“对象”列

【问题讨论】:

标签: python pandas


【解决方案1】:

您可以使用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()

【讨论】:

  • 作为对未来读者的说明,DataFrame.nunique 将在版本 0.20.0 中可用,因此不需要apply
【解决方案2】:

使用df.dtypes

df.loc[:, df.dtypes == object].apply(pd.Series.nunique)

b    3
c    3
dtype: int64

【讨论】:

    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 2015-01-30
      • 2016-10-27
      • 1970-01-01
      • 2018-08-31
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      相关资源
      最近更新 更多