如何添加两个数据框(A + B)的列,以便结果(C)考虑缺失值('---')?
DataFrame A
a = pd.DataFrame({'A': [1, 2, 3, '---', 5]})
A
0 1
1 2
2 3
3 ---
4 5
DataFrame B
b = pd.DataFrame({'B': [3, 4, 5, 6, '---']})
B
0 3
1 4
2 5
3 6
4 ---
A + B的预期结果
C
0 4
1 6
2 8
3 ---
4 ---
答案 0 :(得分:3)
用np.nan替换'---',用'---'添加列和fillna
(a['A'].replace('---', np.nan)+b['B'].replace('---', np.nan)).fillna('---')
您可以将结果分配给新数据框或现有数据框:
df = pd.DataFrame()
df.assign(C = (a['A'].replace('---', np.nan)+b['B'].replace('---', np.nan)).fillna('---'))
OR
a.assign(C = (a['A'].replace('---', np.nan)+b['B'].replace('---', np.nan)).fillna('---'))