pandas:使用其他两列中的任何一列添加新列

时间:2016-04-14 18:31:51

标签: python pandas dataframe

pd.DataFrame({'A':[None,2,None,None,3,4],'B':[1,2,3,4,5,6]})

     A  B
0  NaN  1
1    2  2
2  NaN  3
3  NaN  4
4    3  5
5    4  6

我如何添加列C,如果它不是NaN,则会从列A获取值,否则列B的值?

     A  B  C
0  NaN  1  1
1    2  2  2
2  NaN  3  3
3  NaN  4  4
4    3  5  3
5    4  6  4

2 个答案:

答案 0 :(得分:6)

尝试combine_first()

In [184]: a['C'] = a['A'].combine_first(a['B']).astype(int)

In [185]: a
Out[185]:
     A  B  C
0  NaN  1  1
1  2.0  2  2
2  NaN  3  3
3  NaN  4  4
4  3.0  5  3
5  4.0  6  4

答案 1 :(得分:4)

你也可以尝试fillna()

In [26]: a['C'] = a['A'].fillna(a['B'])

In [27]: a
Out[27]:
     A  B  C
0  NaN  1  1
1    2  2  2
2  NaN  3  3
3  NaN  4  4
4    3  5  3
5    4  6  4