按时间差索引数据帧

2024-05-21 02:34:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两列,一列是时间,另一列是体积。我需要用24小时前的体积减去每个点的体积。你知道吗

在熊猫身上这样做最好的方法是什么?你知道吗

如果数据中有漏洞,并且24小时前的数据帧中没有点,我可以设置一个规则,使其索引到24小时前的最近点吗?你知道吗

样品测向:

In [1]: df
Out[1]: 
Volume   Time

10       24/12/2017 18:40 
27       24/12/2017 18:41
-19      24/12/2017 18:42
7        24/12/2017 18:43
-23      24/12/2017 18:44
18       24/12/2017 18:45
4        24/12/2017 18:46

Tags: 数据方法indftime规则时间样品
1条回答
网友
1楼 · 发布于 2024-05-21 02:34:57

实际上,您可以创建另一个数据帧,将时间提前一天移动。你知道吗

假设数据是

    Volume  Time
0   10      2017-12-24 18:40:00
1   27      2017-12-24 18:41:00
2   -19     2017-12-24 18:42:00
3   7       2017-12-24 18:43:00
4   -23     2017-12-24 18:44:00
5   18      2017-12-24 18:45:00
6   4       2017-12-24 18:46:00
7   127     2017-12-23 18:41:00
8   39      2017-12-23 18:42:00
9   8       2017-12-23 18:45:00
10  40      2017-12-23 18:46:00

df2 = df.copy()
df2["Time"] = df['Time'] - pd.DateOffset(1)

然后,进行内部合并。你知道吗

df2.merge(df, on="Time")

    Volume_x    Time                    Volume_y
0   27          2017-12-23 18:41:00     127
1   -19         2017-12-23 18:42:00     39
2   18          2017-12-23 18:45:00     8
3   4           2017-12-23 18:46:00     40

Volumne_x实际上是Time列之后一天的量。也就是说,如果Time = 2017-12-23 18:41:00Volume_x实际上是Time = 2017-12-24 18:41:00处的体积。现在,你可以做减法了。你知道吗


对于那些想在数据上做实验的人来说。你知道吗

{'Time': {0: Timestamp('2017-12-24 18:40:00'),
  1: Timestamp('2017-12-24 18:41:00'),
  2: Timestamp('2017-12-24 18:42:00'),
  3: Timestamp('2017-12-24 18:43:00'),
  4: Timestamp('2017-12-24 18:44:00'),
  5: Timestamp('2017-12-24 18:45:00'),
  6: Timestamp('2017-12-24 18:46:00'),
  7: Timestamp('2017-12-23 18:41:00'),
  8: Timestamp('2017-12-23 18:42:00'),
  9: Timestamp('2017-12-23 18:45:00'),
  10: Timestamp('2017-12-23 18:46:00')},
 'Volume': {0: 10,
  1: 27,
  2: -19,
  3: 7,
  4: -23,
  5: 18,
  6: 4,
  7: 127,
  8: 39,
  9: 8,
  10: 40}}

相关问题 更多 >