我有一个像这样的数据框
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
如何获得正确的结果?
答案 0 :(得分:2)
在您的代码中,我认为数据框中元素的数据类型是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]
答案 1 :(得分:0)
df['C'] = pd.Series(df.fillna('').values.tolist()).str.join(' ')
答案 2 :(得分:0)