Python 返回满足表中条件的第一列编号

Python 返回满足表中条件的第一列编号,python,pandas,Python,Pandas,我有一个数据集,有几列累积和。对于每一行,我想返回满足条件的第一列编号 玩具示例: df = pd.DataFrame(np.array(range(20)).reshape(4,5).T).cumsum(axis=1) >>> df 0 1 2 3 0 0 5 15 30 1 1 7 18 34 2 2 9 21 38 3 3 11 24 42 4 4 13 27 46 例如,如果我想返回值大于20的第一列

我有一个数据集,有几列累积和。对于每一行,我想返回满足条件的第一列编号

玩具示例:

df = pd.DataFrame(np.array(range(20)).reshape(4,5).T).cumsum(axis=1)

>>> df
   0   1   2   3
0  0   5  15  30
1  1   7  18  34
2  2   9  21  38
3  3  11  24  42
4  4  13  27  46

例如,如果我想返回值大于20的第一列

期望输出:

3
3
2
2
2

非常感谢,一如既往

尝试使用
idxmax

df.gt(20).idxmax(1)
Out[66]: 
0    3
1    3
2    2
3    2
4    2
dtype: object

没有@YOBEN_S那么短,但works是和的链接


有没有一种简单的方法来获取数字列号而不是列名?@user12346170
df.columns.get_indexer(df.gt(20).idxmax(1))
df[df>20].apply(lambda x: x.index.get_loc(x.first_valid_index()), axis=1)
0    3
1    3
2    2
3    2
4    2
dtype: int64