繁体   English   中英

如何在 pandas DataFrame 中找到第二个最小值的索引?

[英]How to find the index of the second minimum in pandas DataFrame?

我有一个 DataFrame,前 5 行看起来像:

              High        Low          Open     Close    Volume Adj Close
Date                        
2003-12-01  1.204007    1.194401    1.203398    1.196501    0.0 1.196501
2003-12-02  1.210903    1.194600    1.196101    1.208897    0.0 1.208897
2003-12-03  1.213003    1.207700    1.209000    1.212298    0.0 1.212298
2003-12-04  1.214403    1.204398    1.212004    1.208094    0.0 1.208094
2003-12-05  1.219096    1.206593    1.207802    1.218695    0.0 1.218695

在绘制“低”之后,有两个荒谬的极端值。 在此处输入图像描述

我知道如何使用data[['Low']].idxmin()找到最低的,但是如何在不删除第一个最小值的情况下找到第二个最小值?

您可以尝试使用带有headsort_values

df.low.sort_values().head(2).index[1]

您可以使用nsmallest获得具有最低值的两个值

df['Low'].nsmallest(2)

要获取第二低值的索引:

df['Low'].nsmallest(2).index[1]

请注意,此方法假定没有重复值。

如果有重复,那么我们需要将索引作为列表取出。 这种方法虽然冗长,但将实现这一目标。

df.reset_index().sort_values(by='A').groupby('A')['index'].apply(list).reset_index().iloc[1]['index']

暂无
暂无

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

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