【发布时间】:2021-03-24 20:57:48
【问题描述】:
希望使用 Python 中的均值和标准差去除 DataFrame 的异常值。但我想让它成为 na 而不是简单地删除异常值。然后我想以 Dataframe 的形式再次保存它。这是我的问题。
我想到了下面的代码,但我不知道在这里做更多的事情。我不在乎我是否能以任何方式解决我的问题,如果不是以下方式。
df_group = df.groupby('count')
df_group_mean = df_group.mean()
df_group_std = df_group.std()
index_list = df_group_mean.index
col_list = ["A", "B", "C", "D"]
for IndexList in index_list:
temp = df.iloc[IndexList]
for ColList in col_list:
mean = df_group_mean.loc[IndexList, ColList]
std = df_group_std.loc[IndexList, ColList]
temp[ColList] = np.where(temp[ColList] > mean + (std * sigma), np.nan, temp[ColList])
temp[ColList] = np.where(temp[ColList] < mean - (std * sigma), np.nan, temp[ColList])
【问题讨论】:
-
有小数据例子吗?
-
我的回答对你有帮助吗?