在数据处理阶段,通过分析,经常存在个别偏离群体数据的样本,这时往往需要删除掉这些噪声数据,以便更合理的分析数据。最基本的方法为删除偏离均值三倍标准差的数据。
import numpy as np
import pandas as pd
df = pd.read_csv(filename)#filename表示相应路径下的文件名,需要注意文件的格式信息
def drop_noisy(df):
df_copy = df.copy()
df_describe = df_copy.describe()
for column in df.columns:
mean = df_describe.loc['mean',column]
std = df_describe.loc['std',column]
minvalue = mean - 3*std
maxvalue = mean + 3*std
df_copy = df_copy[df_copy[column] >= minvalue]
df_copy = df_copy[df_copy[column] <= maxvalue]
return df_copy
最后得到的就为我们所需的数据。