首页 > 解决方案 > 从不符合序列的熊猫数据框中删除特定值

问题描述

我有一个具有时间序列列的数据框:它们遵循特定的序列,除了少数垃圾值我希望根据时间列删除行。正如所见,1276.400 不适合序列,因此需要删除整行。我知道如何根据条件删除熊猫行,但无法为这个特定问题提出解决方案

.......
    583.19732
    583.397583
    583.5975952
    1276.400146
    583.7976074
    583.9976196
    584.1975708
    584.396123
    584.597834
    ........

标签: pythonpython-3.xpython-2.7pandasnumpy

解决方案


您将需要选择一些逻辑来确定您认为的异常值。我们对此无能为力。您最了解您的数据。

一种选择是使用pd.Series.quantile. 这使您可以灵活地定义误差范围。另一方面,它并不专门查看相邻值。

df_filtered = df[df['col'] < df['col'].quantile(0.90)]

print(df_filtered)

          col
0  583.197320
1  583.397583
2  583.597595
4  583.797607
5  583.997620
6  584.197571
7  584.396123
8  584.597834

推荐阅读