【发布时间】:2017-06-29 03:47:38
【问题描述】:
下面是一个示例数据框,它与我的类似,只是我正在处理的数据框有 200,000 个数据点。
import pandas as pd
import numpy as np
df=pd.DataFrame([
[10.07,5], [10.24,5], [12.85,5], [11.85,5],
[11.10,5], [14.56,5], [14.43,5], [14.85,5],
[14.95,5], [10.41,5], [15.20,5], [15.47,5],
[15.40,5], [15.31,5], [15.43,5], [15.65,5]
], columns=['speed','delta_t'])
df
speed delta_t
0 10.07 5
1 10.24 5
2 12.85 5
3 11.85 5
4 11.10 5
5 14.56 5
6 14.43 5
7 14.85 5
8 14.95 5
9 10.41 5
10 15.20 5
11 15.47 5
12 15.40 5
13 15.31 5
14 15.43 5
15 15.65 5
std_dev = df.iloc[0:3,0].std() # this will give 1.55
print(std_dev)
我有 2 列,“速度”和“Delta_T”。 Delta_T 是我的实际数据中后续行之间的时间差(它有日期和时间)。运行速度不断变化,我想要实现的是过滤掉速度几乎稳定的所有数据点,例如过滤标准偏差 =15 分钟。例如,如果我们从第一个速度开始,代码应该能够继续跳到下一个速度,继续计算标准偏差,如果它小于 0.5 并且 delta_T 总和达到 30 分钟以上,我应该复制那个数据到一个新的数据框。 所以对于这个数据框,我将留下索引 5 到 8 和 10 到 15。
这可能吗?你能给我一些建议吗?对不起,我被卡住了。这对我来说似乎很复杂。
谢谢。
最好的问候阿伦
【问题讨论】:
-
你能发布你想要的数据集吗?
-
谢谢。它看起来像这样。 df1=pd.DataFrame([[14.56,5],[14.43,5],[14.85,5],[14.95,5],[15.2,5],[15.47,5],[15.4,5],[ 15.31,5],[15.43,5],[15.65,5]],columns=['speed','delta_t'])。我刚刚从原始数据创建了另一个数据框来获得我想要的。理想情况下,代码应该根据标准和时间标准创建一个新的
标签: python pandas dataframe filtering