Pandas - 列中最不频繁的值

4

我有一个 Pandas 的整数系列 'win'。 我希望最常见的和最不常见的值成为该列中最频繁和最不频繁的值。 例如,对于以下数字,我希望 most_common 是 2,least_common 是 1。 如果存在平局,则可以任意打破。

0 1 2 2 2 0 0 2 2 0

我可以使用以下代码找到 most_common:

我可以使用以下代码找到 most_common:

win.mode()[0]

如何找到最小公共元素?我尝试了以下代码,但它并没有起作用,而且我也不确定这是否是最佳方法:

lowest =valid_loss.value_counts().tail(1)[0]
2个回答

8
我认为需要获取最低值的最后一个索引和最高值的第一个索引:
valid_loss = pd.Series([0, 1, 2, 2, 2, 0, 0, 2, 2, 0])

s = valid_loss.value_counts()
print (s)
2    5
0    4
1    1
dtype: int64

highest = s.index[0]
print (highest)
2

lowest = s.index[-1]
print (lowest)
1

1

另一种方法是使用 value_counts API

valid_loss = pd.Series([0, 1, 2, 2, 2, 0, 0, 2, 2, 0])

lowest = valid_loss.value_counts(ascending=True)[0]
>> 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接