gpt4 book ai didi

python - 使用 pandas 仅保留 timedelta=1 分钟的数据

转载 作者:行者123 更新时间:2023-12-01 04:05:16 25 4
gpt4 key购买 nike

让我们生成 10 行具有非恒定时间步长的时间序列:

import pandas as pd
import numpy as np
x = pd.DataFrame(np.random.random(10),pd.date_range('1/1/2011', periods=5, freq='1min') \
.union(pd.date_range('1/2/2011', periods=5, freq='1min')))

数据示例:

2011-01-01 00:00:00  0.144852
2011-01-01 00:01:00 0.510248
2011-01-01 00:02:00 0.911903
2011-01-01 00:03:00 0.392504
2011-01-01 00:04:00 0.054307
2011-01-02 00:00:00 0.918862
2011-01-02 00:01:00 0.988054
2011-01-02 00:02:00 0.780668
2011-01-02 00:03:00 0.831947
2011-01-02 00:04:00 0.707357

现在让我们将 r 定义为所谓的“返回值”(连续行之间的差异):

r = x[1:] - x[:-1].values

如何通过删除时间差不超过1分钟的r[i]来清理数据?(这里正好有这样一行 >r 清洁)

最佳答案

IIUC 我认为您想要以下内容:

In [26]:
x[(x.index.to_series().diff() == pd.Timedelta(1, 'm')) | (x.index.to_series().diff().isnull())]

Out[26]:
0
2011-01-01 00:00:00 0.367675
2011-01-01 00:01:00 0.128325
2011-01-01 00:02:00 0.772191
2011-01-01 00:03:00 0.638847
2011-01-01 00:04:00 0.476668
2011-01-02 00:01:00 0.992888
2011-01-02 00:02:00 0.944810
2011-01-02 00:03:00 0.171831
2011-01-02 00:04:00 0.316064

这将使用 to_series 将索引转换为系列所以我们可以调用 diff然后我们可以将其与 1 分钟的时间增量进行比较,我们还处理第一行情况,其中 diff 将返回 NaT

关于python - 使用 pandas 仅保留 timedelta=1 分钟的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35711588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com