Pandas获得列的最常见值

时间:2018-02-02 20:16:55

标签: python pandas dataframe

我有这个数据框:

System.gc

所以我想让 获得最常用的值或值(在这种情况下是其值) 所以我所做的是:

0 name data
1 alex asd
2 helen sdd
3 alex dss
4 helen sdsd
5 john sdadd

但它只返回值: Alex ,即使它 Helen 也会出现两次。

17 个答案:

答案 0 :(得分:21)

使用mode

df.name.mode()
Out[712]: 
0     alex
1    helen
dtype: object

答案 1 :(得分:4)

不明显,但很快

f, u = pd.factorize(df.name.values)
counts = np.bincount(f)
u[counts == counts.max()]

array(['alex', 'helen'], dtype=object)

答案 2 :(得分:4)

您可以这样尝试argmax

dataframe['name'].value_counts().argmax() Out[13]: 'alex'

value_counts将返回pandas.core.series.Series的计数对象,而argmax可用于获得最大值的键。

答案 3 :(得分:3)

您可以使用它来获得完美的计数,它会计算特定列的模式

df['name'].value_counts()

答案 4 :(得分:3)

df['name'].value_counts()[:5].sort_values(ascending=False)

value_counts将返回一个计数对象pandas.core.series.Series,而sort_values(ascending=False)将首先为您提供最高的值。

答案 5 :(得分:3)

使用:

df['name'].mode()

df['name'].value_counts().idxmax()

答案 6 :(得分:2)

您可以使用.apply和pd.value_counts来计算名称列中所有名称的出现次数。

dataframe['name'].apply(pd.value_counts)

答案 7 :(得分:2)

我有一个类似的问题最好最简洁的答案让我们说前 n(默认为 5)最常见的值是:

df["column_name"].value_counts().head(n)

答案 8 :(得分:2)

这是一种方式:

df['name'].value_counts()[df['name'].value_counts() == df['name'].value_counts().max()]

打印:

helen    2
alex     2
Name: name, dtype: int64

答案 9 :(得分:2)

获得第一个最佳解决方案是

 df['my_column'].value_counts().sort_values(ascending=False).argmax()

答案 10 :(得分:1)

要获取最常见的前五名:

dataframe['name'].value_counts().head()

答案 11 :(得分:1)

确定前 5 名,例如,使用 value_counts

top5 = df['column'].value_counts()

'top_5'的列表内容

top5[:5]

答案 12 :(得分:1)

只需使用它即可。

dataframe['name'].value_counts().nlargest(n)

最大和最小频率的功能是:

  • nlargest()获取最常用的'n'值
  • nsmallest()获取最不常用的'n'值

答案 13 :(得分:1)

要获取n的最频繁值,只需子集.value_counts()并获取索引:

# get top 10 most frequent names
n = 10
dataframe['name'].value_counts()[:n].index.tolist()

答案 14 :(得分:0)

n用于获取最常使用的物品的数量

n = 2

a=dataframe['name'].value_counts()[:n].index.tolist()

dataframe["name"].value_counts()[a]

答案 15 :(得分:0)

获得前5名:

dataframe['name'].value_counts()[0:5]

答案 16 :(得分:0)

获得前 5 名最常见的姓氏熊猫:

df['name'].apply(lambda name: name.split()[-1]).value_counts()[:5]