'Get for each row the last column name with a certain value

I have this kind of dataframe, and I'm looking to get for each row the last column name equals to 1

Here is an example of my dataframe

              col1   col2   col3    col4   col5   col6    
2020-03-31    nan    nan    nan     nan    nan    nan    
2020-04-01    nan    nan    nan     nan    1.0    1.0   
2020-04-02    nan    nan    nan     1.0    nan    nan     
2020-04-03    nan    nan    nan     nan    nan    nan   

and I'm looking to get something like this:

              col1   col2   col3    col4   col5   col6   result
2020-03-31    nan    nan    nan     nan    nan    nan    nan
2020-04-01    nan    nan    nan     nan    1.0    1.0    col6
2020-04-02    nan    nan    nan     1.0    nan    nan    col4
2020-04-03    nan    nan    nan     nan    nan    nan    nan

how can I achieve such result ?



Solution 1:[1]

df['result'] = df.apply(lambda x: x[::-1].idxmax(), axis=1)
print(df)

            col1  col2  col3  col4  col5  col6 result
2020-03-31   NaN   NaN   NaN   NaN   NaN   NaN    NaN
2020-04-01   NaN   NaN   NaN   NaN   1.0   1.0   col6
2020-04-02   NaN   NaN   NaN   1.0   NaN   NaN   col4
2020-04-03   NaN   NaN   NaN   NaN   NaN   NaN    NaN

Solution 2:[2]

df.where(df==1).agg(lambda x: x.last_valid_index(), axis=1)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 jch
Solution 2 Marat