【发布时间】:2018-09-29 00:53:27
【问题描述】:
拥有一个多列数据框,我对如何保留/获取每列位于第 25 和第 75 个百分位数之间的数据框部分感兴趣? 我需要删除值超出 25-75 个百分位范围的行(只是时间步长)
import numpy as np
import pandas as pd
df1 = pd.DataFrame({
'400.0': [13.909261, 13.758734, 13.513627, 13.095409, 13.628918, 12.782643, 13.278548, 13.160153, 12.155895, 12.152373, 12.147820, 13.023997, 15.010729, 13.006050, 13.002356],
'401.0': [14.581624, 14.173803, 13.757856, 14.223524, 14.695623, 13.818065, 13.300235, 13.173674, 14.145402, 14.144456, 13.142969, 13.022471, 14.010802, 14.006181, 14.002641],
'402.0': [15.253988, 15.588872, 15.002085, 15.351638, 14.762327, 14.853486, 15.321922, 14.187195, 15.134910, 15.136539, 15.138118, 15.020945, 15.010875, 15.006313, 15.002927],
'403.0': [15.633908, 14.833914, 15.146499, 15.431543, 15.798185, 14.874350, 14.333470, 14.192128, 15.130119, 15.134795, 15.136049, 15.019307, 15.012037, 15.006674, 15.003002],
})
我希望看到更少的行数,因此我必须消除一系列作为时间序列异常值的测量值。
这是来自原始数据集,其中 x 轴显示行。所以我需要以某种方式通过设置百分位标准来删除这个 blob
最后,我会采用最严格的标准将其应用于整个数据框
【问题讨论】:
-
您的意思是保留某列第 25 和第 75 个百分位之间的行吗?如果整行落在这些百分位数之间,您如何定义?
-
我会更新帖子,好问题。我的意思是每列的百分位数,完全正确!
-
在哪一列的第 25 和第 75 个百分位内?如果它的所有列也意味着深度(因为它与所有其他列具有不同类型的标签)我怀疑你的意思可能是保持该列的值 WHERE 其他列在限制范围内但如果这些限制适用对于所有其他列,那么应该发生什么?短版 - 您希望看到什么?
-
抱歉,我更新了帖子:我希望看到更少的行数,所以我必须消除一系列作为时间序列异常值的测量值。这里的深度列已经过时了,其他列应该都在 25-75 个百分位之间,所以我想最后我会采用最严格的标准将它应用于整个数据框
-
我认为混淆源于一行将有多个值的事实。这些值中的每一个都可以单独标记为其各自列的异常值。那么,如果
any的值在外部,或者仅当all时,您是否要删除一行。或者,也许设置一个阈值?
标签: python pandas dataframe percentile