繁体   English   中英

Pandas 获取列的最频繁值

[英]Pandas get the most frequent values of a column

我有这个数据框:

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

所以我试图获得最常见的值或值(在这种情况下是它的值)所以我要做的是:

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

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

通过使用mode

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

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

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

你可以像这样尝试argmax

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

value_counts将返回的计数对象pandas.core.series.Seriesargmax可用于实现最大价值的关键。

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

value_counts将返回pandas.core.series.Series的计数对象,而sort_values(ascending=False)将首先获得最高值。

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

df['name'].value_counts()

这是一种方法:

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

打印:

helen    2
alex     2
Name: name, dtype: int64

不明显,但很快

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

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

获得前 5 名:

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

用:

df['name'].mode()

或者

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

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

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

要获得前五个最常见的名称:

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

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

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

简单地使用这个..

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

频率最大和最小的函数是:

  • nlargest()用于最频繁的 'n' 值
  • nsmallest()用于最不频繁的“n”值

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

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

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

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

列出“top_5”的内容

top5[:5]

n 用于获取最频繁使用的项目的数量

n = 2

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

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

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

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

它将给出前五个最常见的名称:

df['name'].value_counts().nlargest(5)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM