我如何从数据框中删除行?

我正在尝试从数据集中删除异常值.为了做到这一点,我正在使用:

df = df[df.attr < df.attr.mean() + df.attr.std()*3]

这似乎按预期工作,但是,当我做类似的事情时:

for i in xrange(df.shape[0]):
    print df.attr[i]

然后我得到一个KeyError.似乎Pandas实际上并没有返回删除行的新DataFrame.我实际上如何删除这些行,并获得功能齐全的DataFrame?

解决方法:

首先,找到符合条件的索引(在您的情况下为df.attr< df.attr.mean()df.attr.std()* 3).

x = df.loc[:,attr] < df.attr.mean() + df.attr.std()*3

接下来,使用DataFrame.drop.

df.drop(x[x].index)

有关更多信息,请参见答案,例如How to drop a list of rows from Pandas dataframe?

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...