是否可以通过某列累积和的“BIN”对timeseries数据重新采样?我的意思是如果我的原始df是:
+------+------------+-------+----------------+
| time | value | bool | someothervalue |
+------+------------+-------+----------------+
| 00:01| 3 | True | 5 |
| 00:03| 1 | True | 3 |
| 00:04| 2 | False | 6 |
| 00:20| 2 | True | 7 |
| 00:27| 4 | True | 4 |
| 00:28| 1 | False | 6 |
| 00:29| 1 | True | 7 |
| 00:30| 2 | True | 3 |
+------+------------+-------+----------------+
我想“按值”对其重新采样,以便每个重新采样的行表示4的聚合值:
+-------+-------+-----+---------+--------------+-------------+
| start | end | valuesum | truecount | somevaluesum | sampledrows |
+-------+-------+----------+-----------+--------------+-------------+
| 00:01 | 00:03 | 4 | 2 | 8 | 2 |
| 00:04 | 00:20 | 4 | 1 | 13 | 2 |
| 00:27 | 00:27 | 4 | 1 | 4 | 1 |
| 00:28 | 00:30 | 4 | 2 | 16 | 3 |
+-------+-------+----------+-----------+--------------+-------------+
我目前的解决方案是“传统的”df.itertuples()
,但速度非常慢,我的目标数据集是1亿行,我必须对它进行多次不同的重新采样。我正在寻找类似于df.resample.ohlc()
的有效解决方案,但基于“值”间隔而不是时间间隔
编辑:我的示例过于简单,我的实际数据是浮点型的,所以计算模比较困难,我还需要重采样数据中的第一个(打开)和最后一个(关闭)值。我保证以后不会过分简化我的问题,这是我的第一个问题
让我们尝试获取mod,然后
cumsum
创建密钥,我们可以执行groupby
+agg
相关问题 更多 >
编程相关推荐