如何有条件地设置列值

时间:2019-06-26 16:07:56

标签: python pandas dataframe

我希望我的代码首先查看第一列。如果该行具有有效的数字,则将该值作为COL 3值。如果不是,第二种选择是将COL 2的值作为COL 3中的值。是否有一个功能可以做到这一点?

     COL1  COL2  COL3
0     1     2
1    nan    4
2     3    nan
3     4     8
4    nan    10
5     6    nan

     COL3   
0     1    
1     4   
2     3   
3     4   
4     10
5     6

2 个答案:

答案 0 :(得分:3)

尝试

df['col 3'] = np.where(df['col 1'].isnull(),df['col 2'],df['col 1'])

答案 1 :(得分:-2)

IIUC:

df['COL3'] = df.bfill(axis=1)['COL1']

给予:

   COL1  COL2  COL3
0   1.0   2.0   1.0
1   NaN   4.0   4.0
2   3.0   NaN   3.0
3   4.0   8.0   4.0
4   NaN  10.0  10.0
5   6.0   NaN   6.0