我有一个这样的数据框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
)
慕尼黑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
缥缈止盈
TA贡献2041条经验 获得超4个赞
NaN
在应用 lambda 之前删除带有条目的行: df[['col1', 'col2']].dropna().apply(lambda x: x['col1'].replace(x['col2'], ''), axis=1)
添加回答
举报
0/150
提交
取消