我的数据框格式为
df
Count
DateTime
2015-01-16 10
2015-01-17 28
2015-01-18 26
2015-01-19 10
2015-01-20 24
2015-01-21 25
我尝试使用此功能来消除使用groupby的异常值
def replaceit(group):
mean, std = group.mean(), group.std()
outliers = (group - mean).abs() > 3*std
group[outliers] = mean # or "group[~outliers].mean()"
return group
创建该数据帧的副本,因为我想在其他地方使用它:
df2 = df
让我们看看df2的输出
df2
Count
DateTime
2015-01-16 10
2015-01-17 28
2015-01-18 26
2015-01-19 10
2015-01-20 24
2015-01-21 25
让我们使用函数
df2 = replaceit(df2)
df2
DateTime
2015-01-16 10.000000
2015-01-17 28.000000
2015-01-18 26.000000
2015-01-19 10.000000
2015-01-20 24.000000
2015-01-21 25.000000
但现在让我们看看df的输出:
df
Count
DateTime
2015-01-16 10.000000
2015-01-17 28.000000
2015-01-18 26.000000
2015-01-19 10.000000
2015-01-20 24.000000
2015-01-21 25.000000
我的问题是,为什么会发生这种情况? 我该如何解决这个问题?
答案 0 :(得分:2)