为了账号安全,请及时绑定邮箱和手机立即绑定

如何从另一个列字符串值中删除列字符串值?

如何从另一个列字符串值中删除列字符串值?

慕村225694 2021-09-28 16:17:44
我有一个这样的数据框df:col1                      col2blue water bottle        bluered wine glass           redgreen cup                green 我想制作另一列,它将忽略col2from的值,col1 例如新列col3将是:water bottlewine glassgreen cup我试过这个代码:df.apply(lambda x: x['col1'].replace(x['col2'], ''), axis=1)但我收到以下错误:AttributeError: ("'NoneType' 对象没有属性 'replace'",'发生在索引 0')怎么做 ?
查看完整描述

3 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

原因是数据框中某些行的“col1”为无。您将需要处理这些情况,例如通过将空字符串分配给col3


df["col3"] = df.apply(

    lambda x: "" if pd.isnull(x["col1"]) else x["col1"].replace(x["col2"], ""),

    axis=1

)


查看完整回答
反对 回复 2021-09-28
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

用 -


df[['col','col2']].apply(lambda x: x[0].replace(x[1],''), axis=1)

输出


0     water bottle

1       wine glass

2              cup

dtype: object


查看完整回答
反对 回复 2021-09-28
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

NaN在应用 lambda 之前删除带有条目的行: df[['col1', 'col2']].dropna().apply(lambda x: x['col1'].replace(x['col2'], ''), axis=1)


查看完整回答
反对 回复 2021-09-28
  • 3 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信