【发布时间】:2022-01-24 20:17:04
【问题描述】:
我有一个数据框列,其中列出了特定房产建造年份的信息。 该值可以是:一年、未知或新建。 我想用当前年份替换所有“新建”值,保持年份值不变,并用列的平均值替换所有“未知”值。这是我的代码:
y = df['year'][pd.to_numeric(df['year'], errors='coerce').notnull()].astype(float).mean()
df['year'] = df.year.apply(lambda x: 2022 if fnmatch(x,'*ewly') else x)
df['year'] = df.year.apply(lambda x: y if fnmatch(x,'*nknown*') else x)
我使用 fnmatch 来搜索模式,因为它的拼写方式各不相同。 如果我在得到正确的输出后运行 lambda 函数,但运行整个代码会出现以下错误:
TypeError: expected str, bytes or os.PathLike object, not int
不太清楚这里有什么问题。有什么想法吗?
【问题讨论】: