比较两个数据框并替换列值

时间:2018-11-16 10:47:15

标签: python python-3.x

我有两个数据框df

df1

我需要比较数据框和我的输出,如果在df中存在df1值,则将其保留,否则应将其替换为Out。例如Level_count中的列值应类似于L1,L1,L1,L2,L2,L2,L2,Out,Out,Out(因为L3和l4不在df1中),就像我需要比较Edu和Occ一样也是

这是我想要的输出 Output 谁能帮我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要:

df2_dict=df2.to_dict(orient='list')
# {'Level_Count': ['L1', 'L2'], 'Edu': ['MBBS', None], 'Occ': ['MBBS1', None]}

for c in df1.columns:
    df1[c]=df1[c].apply(lambda x: x if x in df2_dict[c] else 'out')

输出:

    Level_Count Edu Occ
0   L1  MBBS    MBBS1
1   L1  MBBS    MBBS1
2   L1  out     out
3   L2  MBBS    MBBS1
4   L2  MBBS    MBBS1
5   L2  MBBS    MBBS1
6   L2  MBBS    MBBS1
7   out MBBS    MBBS1
8   out out     out
9   out MBBS    MBBS1