如何在PandasDataFrame中获取具有非零最小值的第一行索引?
假设我有以下 Pandas DataFrame:
U A B
0 2000 10 20
1 3000 40 0
2 2100 20 30
3 2500 0 30
4 2600 30 40
如何获得 A 和 B 都具有非零值且 (A+B)/2 大于的第一行的索引 15?
在这个例子中,我想得到,2因为它是具有非零 A 和 B 列的第一行,25其平均值大于15
请注意,此 DataFrame 很大,我正在寻找获取索引值的最快方法。
回答
咱们试试吧:
df[(df.A.ne(0)&df.B.ne(0))&((df.A+df.B)/2).gt(15)].first_valid_index()
- @Dani Mesejo thanks missed that, edited