我有一个看起来像这样的数据框:
value | timestamp
2 | 2019-01-01
3 | 2019-01-02
4 | 2019-01-03
10 | 2019-01-08
20 | 2019-01-09
5 | 2019-01-10
以及一个间隔列表,它们是数据帧的索引,如下所示:
idx = [0, 2, 3, 5]
我想获得一个新的数据帧,其中包含从每个间隔计算出的中值,如下所示:
median | start | end | duration
3 |2019-01-01 |2019-01-03| 2
7 |2019-01-03 |2019-01-08| 1
10 |2019-01-08 |2019-01-10| 2
这是我现在拥有的:
df = pd.DataFrame(columns=["median", "start", "end", "duration"])
for i in range(len(idx)-1):
start = idx[i]
end = idx[i+1]
df = df.append({
"median": df1.iloc[start:end+1]['co2ppm'].median(),
"start": df1['timestamp'][start],
"end": df1['timestamp'][end],
"duration": end-start
}, ignore_index=True)
我想知道如何优化它以便更快地运行?