Python使用函数替换文本时在pandas df中比较两列

时间:2019-02-14 17:04:43

标签: python pandas

我有这样的df,

Cola    Colb
Mr      Mr..!
Mrs     Mrs.!.
Mr      Tests

我想比较这两列,而忽略Colb中的(。和!)-我可以在替换不需要的字符时生成一个新列。但是,有没有更好的方法可以使用pandas函数呢?

3行中的所有行的预期结果都是正确的。

这是我用于直接比较的单行代码,

temp_result_df[res_col_name] = \
((temp_result_df[primaryreportreqcolname] == temp_result_df[RequiredSecondaryReport_Col_Name])\
& (temp_result_df[RequiredSecondaryReport_Col_Name]!= 'Tests'))

Python的新手。因此,我正在探索不同的功能和方法来与数据中的某些噪声进行比较。

1 个答案:

答案 0 :(得分:4)

IIUC,

df['res_col_name'] = df['Cola'].eq(df['Colb'].replace('\W+', '', regex = True))  | df['Colb'].eq('Tests')


    Cola    Colb    res_col_name
0   Mr      Mr..!   True
1   Mrs     Mrs.!.  True
2   Mr      Tests   True