从两列字符串创建pandas列包含NA

时间:2018-10-02 10:15:41

标签: python string pandas

我有两列包含字符串和NA,我想将它们组合为1。我觉得这应该很简单,但似乎无法使其工作或在此处找到答案。以下是我追求的结果。

S1  S2  S
A   Nan A
A   Nan A
A   Nan A
A   Nan A
Nan C   C
Nan C   C
Nan C   C
Nan C   C
Nan Nan Nan
Nan Nan Nan
Nan Nan Nan
B   Nan B
B   Nan B
B   Nan B
B   Nan B
B   Nan B

我认为df['S'] = df['S1']+ df['S2']可以工作,但不能。

真的,要感谢一个明显的修正。

1 个答案:

答案 0 :(得分:1)

使用combine_first

df['S_new'] = df['S1'].combine_first(df['S2'])
print (df)
     S1   S2    S S_new
0     A  NaN    A     A
1     A  NaN    A     A
2     A  NaN    A     A
3     A  NaN    A     A
4   NaN    C    C     C
5   NaN    C    C     C
6   NaN    C    C     C
7   NaN    C    C     C
8   NaN  NaN  NaN   NaN
9   NaN  NaN  NaN   NaN
10  NaN  NaN  NaN   NaN
11    B  NaN    B     B
12    B  NaN    B     B
13    B  NaN    B     B
14    B  NaN    B     B
15    B  NaN    B     B