我想从正上方的值中减去DataFrame中列的最小值。在R
我会这样做:
df <- data.frame(a=1:5, b=c(5,6,7,4,9))
df
a b
1 1 5
2 2 6
3 3 7
4 4 4
5 5 9
df$b[which.min(df$b)-1] - df$b[which.min(df$b)]
[1] 3
我如何在pandas
中做同样的事情?更一般地说,如何在满足特定条件的pandas
DataFrame中提取行号?
答案 0 :(得分:2)
您可以使用argmin
找出最小值的索引(如果有关系,则为第一个索引),然后您可以根据位置进行减法:
index = df.b.argmin()
df.b[index-1] - df.b[index]
# 3
如果索引不是连续数字:
i_index = df.b.values.argmin()
df.b.iat[i_index-1] - df.b.iat[i_index]
# 3
效率低下:
-df.b.diff()[df.b.argmin()]
# 3.0