Python 3.x 如何使用Python每10分钟分割一次TimeSeries数据

Python 3.x 如何使用Python每10分钟分割一次TimeSeries数据,python-3.x,pandas,timestamp,time-series,Python 3.x,Pandas,Timestamp,Time Series,我如何在每10分钟的时间段中断时间序列数据,这是我的样本数据,在下面的数据中,如果我首先看到的是没有10分钟的数据,因为在第三行之后它跳到00:39:00分钟,所以它将从0再次开始计数,我想把真/假值放在最后计数10分钟的地方 我尝试了一种技术x[“DateTime”].diff()>pd.Timedelta(minutes=10)但它在数据中找到了00:10:00时间戳,然后将其破坏,这不符合我的要求。因为pd.Timedelta(分钟=10)给出结果00:10:00 我怎么可能做到呢?我希望

我如何在每10分钟的时间段中断
时间序列
数据,这是我的样本数据,在下面的数据中,如果我首先看到的是没有10分钟的数据,因为在第三行之后它跳到
00:39:00
分钟,所以它将从
0
再次开始计数,我想把真/假值放在最后计数10分钟的地方

我尝试了一种技术
x[“DateTime”].diff()>pd.Timedelta(minutes=10)
但它在数据中找到了00:10:00时间戳,然后将其破坏,这不符合我的要求。因为
pd.Timedelta(分钟=10)
给出结果
00:10:00

我怎么可能做到呢?我希望我能解释清楚

DateTime               ValA
2011-01-01 00:01:00    0.551815
2011-01-01 00:01:59    0.542464
2011-01-01 00:03:00    0.520525
2011-01-03 06:39:00    1.225518
2011-01-03 06:40:00    2.241443
2011-01-03 06:40:59    3.148734
2011-01-03 06:42:00    5.361565
2011-01-03 06:43:00    6.878603
2011-01-03 06:43:59    7.127448
2011-01-03 06:45:00    8.130982
2011-01-03 06:46:00    8.188750
2011-01-03 06:46:59    8.267185
2011-01-03 06:48:00    8.204753
2011-01-03 06:49:00    8.121145
2011-01-03 06:49:59    8.129115
2011-01-03 06:51:00    8.160426
2011-01-03 06:52:00    8.301057
2011-01-03 06:53:00    8.342608
2011-01-03 06:53:59    8.390675
2011-01-03 06:55:00    8.063992
2011-01-03 06:56:00    7.396055
2011-01-03 06:56:59    6.771710
2011-01-03 06:58:00    5.295999
2011-01-03 06:59:00    4.210010
2011-01-03 06:59:59    3.689164
2011-01-03 07:01:00    2.963554
2011-01-03 07:02:00    2.873527
2011-01-03 07:02:59    2.885474
2011-01-03 07:04:00    2.394660
2011-01-03 07:05:00    2.603989
所需的输出应为

DateTime               ValA       Flag
2011-01-01 00:01:00    0.551815   False 
2011-01-01 00:01:59    0.542464   False
2011-01-01 00:03:00    0.520525   False
2011-01-03 06:39:00    1.225518   True
2011-01-03 06:40:00    2.241443   False
2011-01-03 06:40:59    3.148734   False
2011-01-03 06:42:00    5.361565   False
2011-01-03 06:43:00    6.878603   False
2011-01-03 06:43:59    7.127448   False
2011-01-03 06:45:00    8.130982   False
2011-01-03 06:46:00    8.188750   False
2011-01-03 06:46:59    8.267185   False
2011-01-03 06:48:00    8.204753   False
2011-01-03 06:49:00    8.121145   False
2011-01-03 06:49:59    8.129115   True
2011-01-03 06:51:00    8.160426   False
2011-01-03 06:52:00    8.301057   False
2011-01-03 06:53:00    8.342608   False
2011-01-03 06:53:59    8.390675   False

这应该是输出

好吧,这并不完美,但它会在10分钟内为您提供
True
。取决于你从哪里开始计算

by_seconds = df.resample('1S')

by_seconds['flag'] = by_seconds.index.minute%10==0


DateTime                  ValA          flag
2011-01-01 00:01:00 0.5518149999999999  False
2011-01-01 00:01:01                     False
2011-01-01 00:01:02                     False
2011-01-01 00:01:03                     False
2011-01-01 00:01:04                     False

这只是意味着你的
ValA
将有
NaN
在没有观察的地方。

我得到了解决方案,它按照我想要的方式工作。我使用
floor()
diff()
函数来实现我的答案

我尝试了
df.DateTime.dt.floor('10T').diff()
我使用了这个代码,它给出了10个薄荷糖数据的所有细分


参考资料:

因此,基本上您希望查看每个10分钟时间段内是否至少有10个值,其中时间段为(00-10、10-20、20-30…),数据是否为2列?第二列是做什么的?@ALollz不,不是bins概念,我想取10分钟的数据,就像我给出的一个例子,如果你看到10分钟内只有3个值,那么它跳到6:39:00,然后它会给出接下来10分钟的时间data@DemetriP实际上它只有一列,我把日期时间设为索引,这样一来,我就把我的数据复制到这里了。你能把它格式化得更合适吗?你不能对数据重新取样吗?你有错误吗?如果是这样,请确保数据类型是DateTime我有一个索引日期和时间,我可以重新映射数据,但您的第二行生成了一个错误“ValueError:无法在DatetimeIndexResampler上设置项”,我根本不想重新采样,我知道不需要重新采样就可以完成,这就是我正在寻找的,嗯,可能是熊猫的版本。我不知道重采样有什么问题,但这正是你想要的。如果您仍然不满意,请在您的问题中包含所需的输出。我给出了所需的输出