考虑缺失值,添加两列不同的数据框

时间:2019-04-11 19:56:58

标签: python pandas dataframe

如何添加两个数据框(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   ---

1 个答案:

答案 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('---'))