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