我有以下熊貓資料框:
A B C
0 1.0 NaN 2.0
1 NaN 1.0 4.0
2 7.0 1.0 2.0
我知道我可以使用此腳本為每一行獲取第一個非空白列的名稱:
df['first'] = df.dropna(how='all').notna().idxmax(axis=1).astype('string')
但我怎樣才能得到第二個非空白列的名稱?這是預期的輸出:
A B C first second
0 1.0 NaN 2.0 A C
1 NaN 1.0 4.0 B C
2 7.0 1.0 2.0 A B
謝謝
uj5u.com熱心網友回復:
您可以使用 apply 洗掉 NaN:
df[['first', 'second']] = df.apply(lambda x: pd.Series(x.dropna().index), axis=1)
輸出:
A B C first second
0 1.0 NaN 2.0 A C
1 NaN 1.0 4.0 B C
2 7.0 1.0 NaN A B
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433536.html
上一篇:Pandas查詢多個資料框
