[英]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()
找到最低的,但是如何在不删除第一个最小值的情况下找到第二个最小值?
您可以尝试使用带有head
的sort_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.