如何在python中处理/访问dict中的数据帧



因此,我在一个dict中有42个数据帧。我需要通过上限和下限去除的方式来处理数据帧(异常值去除(。当数据帧在dict中时,我该如何处理?

for i in lst_cont:
sigma = np.std(df[i])
Upper_Limit = np.mean(df[i])+3*sigma
Lower_Limit = np.mean(df[i])-3*sigma
df2= df[(df[i]<Upper_Limit) & (df[i]>Lower_Limit)]

但是当数据帧在dict中时,我该如何使用它呢?

我能够做到这一点,其中df001是dict。lst_net是所有列名的列表。

df002 = dict
for i in range(1,41):
for y in lst_cont:
sigma = dict[i][y].std()
Upper_Limit = dict[i][y].mean()+3*sigma
Upper_Limit = dict[i][y].mean()-3*sigma
df002[i] = ?????????????

数据帧各有两列,我需要根据第二列的值删除异常值。

编辑(更新(:在尝试了几次之后,我到现在为止:

for i in range(1,41,1):
df1 = dict[i]
for x in lst_cont:
sigma = np.std(df1[x])
Upper_Limit = np.mean(df[x])+3*sigma
Lower_Limit = np.mean(df[x])-3*sigma
df002[i] = df1[(df1[x]<Upper_Limit) & (df1[x]>Lower_Limit)]
sns.boxplot(x = df002[i][x])
plt.savefig(str(x)+".png")
plt.close()

然而,当循环第二次尝试运行时,我仍然会遇到错误。

我能够通过使用for循环来获得它

for i in range(1,41,1):
for x in lst_cont:
df1 = df001[i]
if x == df1.columns[1]:
sigma = np.std(df1[x])
Upper_Limit = np.mean(df[x])+3*sigma
Lower_Limit = np.mean(df[x])-3*sigma
df002[i] = df1[(df1[x]<Upper_Limit) & (df1[x]>Lower_Limit)]
sns.boxplot(x = df002[i][x])
plt.savefig(str(x)+".png")
plt.close()
else:
continue

最新更新