我有这个数据框:
System.gc
所以我想让 获得最常用的值或值(在这种情况下是其值) 所以我所做的是:
0 name data
1 alex asd
2 helen sdd
3 alex dss
4 helen sdsd
5 john sdadd
但它只返回值: Alex ,即使它 Helen 也会出现两次。
答案 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 = 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]