我有一个数据框,我正在查看其中一个名为“names”的列
array(['Katherine', 'Robert', 'Anne', nan, 'Susan', 'other'], dtype=object)
我正在尝试调用函数来告诉我这一列中每个唯一名称出现的次数,例如如果 Katherine 出现了 223 次等等。
我该如何做?我知道 value_counts 只显示每个唯一值的1次,因为它们是独立的唯一值。
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
你提供的数据中每个姓名只有一个 - 所以这里是一个有多个“Katherine”条目的示例:
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()
df[['col1']].groupby(['col1']).agg(['count'])
df[['col1']]
将返回一个单列DataFrame。如果您在该列上对DataFrame进行分组,则agg
将无法找到任何其他要聚合的列。您可以使用.size()
代替agg('count')
,但我会选择value_counts
。 - ayhan
value_counts
是你想要的。如果有多个出现,则应该显示它们。如果您认为它没有这样做,请提供一个完整的示例来演示问题。请注意,您需要在实际列上使用.value_counts()
,而不是在唯一值列表上使用。 - BrenBarn