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

我有一个这样的数据框


df:

col1                      col2

blue water bottle        blue

red wine glass           red

green cup                green 

我想制作另一列,它将忽略col2from的值,col1 例如新列col3将是:


water bottle

wine glass

green cup

我试过这个代码:


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

但我收到以下错误:


AttributeError: ("'NoneType' 对象没有属性 'replace'",'发生在索引 0')


怎么做 ?


慕村225694
浏览 148回答 3
3回答

温温酱

原因是数据框中某些行的“col1”为无。您将需要处理这些情况,例如通过将空字符串分配给col3df["col3"] = df.apply(    lambda x: "" if pd.isnull(x["col1"]) else x["col1"].replace(x["col2"], ""),    axis=1)

慕尼黑8549860

用 -df[['col','col2']].apply(lambda x: x[0].replace(x[1],''), axis=1)输出0     water bottle1       wine glass2              cupdtype: object

缥缈止盈

NaN在应用 lambda 之前删除带有条目的行: df[['col1', 'col2']].dropna().apply(lambda x: x['col1'].replace(x['col2'], ''), axis=1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python