我有如下所示的 Dataframe df:對于每一行,如果第一個(gè)找到的列值為 None,則應(yīng)將其替換為 DataFrame 中的第 2 列值。 ID 1 2 col0 col1 col2 col3 col4 col5 col60 A1 ABC RED 10 20 None None None None None1 B1 ABC ORANGE 40 None None None None None None2 C1 ABC WHITE 50 34 35 57 78 98 None3 D1 ABC BLUE 20 None None None None None None我想要輸出:ID 1 col0 col1 col2 col3 col4 col5 col60 A1 ABC 10 20 RED1 B1 ABC 40 ORANGE2 C1 ABC 50 34 35 57 78 98 WHITE3 D1 ABC 20 BLUE
1 回答

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
想法是用 limit 參數(shù)向前填充非缺失值,測試非缺失值并用測試缺失值鏈 - 所以掩碼只匹配s 用于從列中None
追加值,最后用空字符串替換 s :2
DataFrame.mask
DataFrame.pop
None
DataFrame.fillna
m = df.ffill(axis=1, limit=1).notna() & df.isna() df = df.mask(m, df.pop(2), axis=0).fillna('')print (df) ID 1 col0 col1 col2 col3 col4 col5 col60 A1 ABC 10 20 RED 1 B1 ABC 40 ORANGE 2 C1 ABC 50 34 35 57 78 98 WHITE3 D1 ABC 20 BLUE
添加回答
舉報(bào)
0/150
提交
取消