【问题标题】:Count of unique value in column pandas [duplicate]熊猫列中唯一值的计数[重复]
【发布时间】:2017-05-30 15:47:49
【问题描述】:

我有一个数据框,我正在查看数据框中名为名称的一列

array(['Katherine', 'Robert', 'Anne', nan, 'Susan', 'other'], dtype=object)

我试图打电话告诉我这些唯一名称中的每一个在列中出现了多少次,例如是否有 223 个 Katherine 实例等。 我该怎么做呢?我知道 value_counts 只显示 1 因为它们是单独的唯一值

【问题讨论】:

  • value_counts 是你想要的。如果出现不止一次,则应显示它们。如果您认为它没有这样做,请展示一个完整的示例来说明问题。请注意,您需要在实际列上使用.value_counts(),而不是在唯一值列表中。
  • @BrenBarn 这个问题一定是骗子,问了很多次了,还在找

标签: python pandas unique


【解决方案1】:

您可以使用 group by 来实现:

df[['col1']].groupby(['col1']).agg(['count'])

【讨论】:

  • 我认为这行不通。 df[['col1']] 将返回一列 DataFrame。如果您将该列上的 DataFrame 分组,agg 将无法找到任何其他要聚合的列。您可以使用.size() 而不是agg('count'),但我会使用value_counts
【解决方案2】:

如果我理解正确,你可以使用pandas.Series.value_counts

示例:

import pandas as pd
import numpy as np

s = pd.Series(['Katherine', 'Robert', 'Anne', np.nan, 'Susan', 'other'])

s.value_counts()

Katherine    1
Robert       1
other        1
Anne         1
Susan        1
dtype: int64

您提供的数据只有一个名称 - 因此这里有一个包含多个“凯瑟琳”条目的示例:

s = pd.Series(['Katherine','Katherine','Katherine','Katherine', 'Robert', 'Anne', np.nan, 'Susan', 'other'])

s.value_counts()

Katherine    4
Robert       1
other        1
Anne         1
Susan        1
dtype: int64

当应用于您的 Dataframe 时,您将按如下方式调用它:

df['names'].value_counts()

【讨论】:

  • dropna = "假"
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 2016-07-06
  • 2018-03-19
  • 2021-08-12
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多