在 Python 中的数据框中的行末尾添加特定的列值

我有如下所示的 Dataframe df:对于每一行,如果第一个找到的列值为 None,则应将其替换为 DataFrame 中的第 2 列值。


 ID     1           2      col0      col1      col2      col3     col4     col5 col6

0 A1    ABC         RED     10        20       None     None     None      None None

1 B1    ABC         ORANGE  40        None     None     None     None      None None

2 C1    ABC         WHITE   50        34        35       57       78         98 None

3 D1    ABC         BLUE    20        None     None     None      None     None None

我想要输出:


ID       1          col0      col1      col2     col3     col4     col5   col6

0 A1    ABC        10        20       RED

1 B1    ABC        40        ORANGE

2 C1    ABC        50        34        35       57       78         98  WHITE

3 D1    ABC        20        BLUE


慕村225694
浏览 182回答 1
1回答

慕莱坞森

想法是用 limit 参数向前填充非缺失值,测试非缺失值并用测试缺失值链 - 所以掩码只匹配s 用于从列中None追加值,最后用空字符串替换 s :2DataFrame.maskDataFrame.popNoneDataFrame.fillnam = 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python