python – 如何添加处理nan值的新列

我有这样的数据帧

    A   B
0   a   1
1   b   2
2   c   3
3   d  nan
4   e  nan

我想在下面添加C列

    A   B    C
0   a   1    a1
1   b   2    b2
2   c   3    c3
3   d  nan   d
4   e  nan   e

所以我试过了

df["C"]=df.A+df.B

但它回来了

 C
a1
b2
c3
nan
nan

怎样才能得到正确的结果?

最佳答案 在您的代码中,我认为数据框中元素的数据类型是str,因此,请尝试
fillna.

In [10]: import pandas as pd
In [11]: import numpy as np
In [12]: df = pd.DataFrame({'A': ['a', 'b', 'c', 'd', 'e'], 
                            'B': ['1', '2', '3', np.nan, np.nan]})

In [13]: df.B.fillna('')
Out[13]: 
0    1
1    2
2    3
3     
4     
Name: B, dtype: object

In [14]: df
Out[14]: 
   A    B
0  a    1
1  b    2
2  c    3
3  d  NaN
4  e  NaN

[5 rows x 2 columns]

In [15]: df.B = df.B.fillna('')

In [16]: df["C"]=df.A+df.B

In [17]: df
Out[17]: 
   A  B   C
0  a  1  a1
1  b  2  b2
2  c  3  c3
3  d      d
4  e      e

[5 rows x 3 columns]
点赞