[英]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.Series
和argmax
可用于实现最大价值的关键。
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 = 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.