在逐组异常值去除函数中面临一些问题



我正在进行一个数据清理项目,在这个项目中,我必须删除price_per_sqft的一些异常值。。因此,我使用了groupby函数,通过统计,该公式创建了一个没有异常值的数据帧,并将concat与输出数据帧。。。

但在输出中,这种类型的单词会返回位置名称,所以我如何才能获得一个干净的位置名称而不是这个。。?

代码:

def remove_pps_outliers(df):
df_out = pd.DataFrame()
for key, subdf in df.groupby('location'):
m = np.mean(subdf.price_per_sqft)
st = np.std(subdf.price_per_sqft)
reduced_df = subdf[(subdf.price_per_sqft>(m-st)) & (subdf.price_per_sqft<=(m+st))]
df_out = pd.concat([df_out,reduced_df],ignore_index=True)
return df_out
df6 = remove_pps_outliers(df5)
df6.head()

输出:在此处输入图像描述

如果没有";第一阶段";或";第一块";像这样的关键字。。。在此处输入图像描述

一个基本的修复方法是只替换不需要的字符。幸运的是,在本例中,'1st Phase ''1st Block '都包含10个字符,因此您可以使用:

df6['location'] = df6['location'].str.slice_replace(0,10,'')

相关内容

  • 没有找到相关文章

最新更新