我想在数据库中合并两列:
两列是
A
1
2
Na
Na
B
Na
Na
C
Na
输出
D
1
2
C
Na
答案 0 :(得分:3)
您可以使用combine_first
或fillna
:
df['D'] = df['A'].combine_first(df['B'])
或者:
df['D'] = df['A'].fillna(df['B'])
注意:
如果一列是数字而另一列不是,请混合types
并且某些功能可能会被破坏。
答案 1 :(得分:3)
使用combine_first
df.A.combine_first(df.B)
考虑数据框df
df = pd.DataFrame(dict(A=[1, 2, np.nan, np.nan], B=[np.nan, np.nan, 'C', np.nan]))
然后
df.A.combine_first(df.B)
0 1
1 2
2 C
3 NaN
Name: A, dtype: object
您可以将其分配到新列'C'
df.assign(C=df.A.combine_first(df.B))
A B C
0 1.0 NaN 1
1 2.0 NaN 2
2 NaN C C
3 NaN NaN NaN