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
答案 0 :(得分:6)
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