简体   繁体   English

大熊猫:使用其他两列中的任何一个添加新列

[英]pandas: add new column with value from either of two other columns

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

how do I add column C that will take the value from column A if it's not NaN, otherwise column B 's value? 我如何添加CA如果不是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

try combine_first() : 尝试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

you could also try fillna() : 您也可以尝试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

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

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