【问题标题】:how to remove substring of a column if it matches with string of another column using pandas?如果使用熊猫与另一列的字符串匹配,如何删除列的子字符串?
【发布时间】:2021-07-06 07:32:30
【问题描述】:

我的数据框如下所示:

          FULL_NAME   NAME
0        FIRST LAST  FIRST
1               NaN    NaN
2        FIRST LAST  NAME2
3       FIRST NAME3  NAME3
4  FIRST NAME4 LAST  NAME4

如果与 NAME 的字符串匹配,我正在尝试删除 FULL_NAME 的子字符串。我尝试了类似的方法,但无法用任何内容替换子字符串:

df.FULL_NAME.replace({str(df['NAME']):''}, regex=True)

我想要的输出:

          FULL_NAME   NAME
0             LAST  FIRST
1               NaN    NaN
2        FIRST LAST  NAME2
3             FIRST  NAME3
4        FIRST LAST  NAME4

【问题讨论】:

  • 您想要的输出结果如何?看不清楚
  • @Gamopo 请检查我是否已编辑

标签: python regex pandas


【解决方案1】:

我认为这应该适合你:

df['FULL_NAME'] =df.apply(lambda x: x['FULL_NAME'].replace(x['NAME'],''), axis=1)

这个解决方案会留下一些未使用的空间,你可以添加str.strip()让它们像这样消失:

df['FULL_NAME'] =df.apply(lambda x: x['FULL_NAME'].replace(x['NAME'],''), axis=1).str.strip()

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 2020-11-11
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2020-01-27
    相关资源
    最近更新 更多