繁体   English   中英

在 Python 的 dataframe 的行尾添加特定的列值

[英]Add a specific column values at the end of row in dataframe in 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

我想要 output:

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

想法是使用限制参数向前填充非缺失值,测试非缺失值并使用测试缺失值进行链接 - 因此掩码仅匹配None s for append 来自第2列的值由DataFrame.maskDataFrame.pop最后替换None 379459C114ZEB8。通过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   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                           

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM