繁体   English   中英

"从 Pandas 数据框中删除行时出现 KeyError"

[英]KeyError when dropping rows from Pandas dataframe

我正在尝试从 Pandas 数据框中删除一些行,因为它们会被视为数据中的异常值。 尝试使用教授教给我的方法删除一些行时,我遇到了 KeyError。

gdp_2019_outliers = np.where(df_gdp['2019'] > 6)
df_gdp.drop(gdp_2019_outliers[0], inplace=True)
gdp_2019_outliers_neg = np.where(df_gdp['2019'] < -3)
df_gdp.drop(gdp_2019_outliers_neg[0], inplace=True) # stacktrace points here as the cause

gdp_2020_outliers = np.where(df_gdp['2020'] > 3)
df_gdp.drop(gdp_2020_outliers[0], inplace=True)
gdp_2020_outliers_neg = np.where(df_gdp['2020'] < -15)
df_gdp.drop(gdp_2020_outliers_neg[0], inplace=True)

当您调用drop<\/code>时,您需要将行索引或列名传递给它。 你可以给它一个掩码,这基本上就是你正在做的事情。

试试这个:

gdp_2019_outliers = np.where(df_gdp['2019'] > 6)
df_gdp.drop(gdp_2019_outliers[0], inplace=True)
gdp_2019_outliers_neg = np.where(df_gdp['2019'] < -3)
# Use this line instead:
df_gdp = df_gdp[~gdp_2019_outliers_neg[0]]


gdp_2020_outliers = np.where(df_gdp['2020'] > 3)
df_gdp.drop(gdp_2020_outliers[0], inplace=True)
gdp_2020_outliers_neg = np.where(df_gdp['2020'] < -15)
# Use this line instead as well:
df_gdp = [~gdp_2020_outliers_neg[0]]

让我们将源 DataFrame 创建为:

   2019  2020
0     5     2
1     6     7
2     7   -15
3     8     8
4    -4     5
5    -3   -18
6    -2     7
7    -5    -3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM