python - 按时间差索引 pandas 数据帧

标签 python pandas dataframe indexing

我有两列,一列是时间,另一列是音量。我需要用 24 小时前的音量减去每个点的音量。

在 pandas 中执行此操作的最佳方法是什么?

如果数据中有漏洞,并且数据框中没有 24 小时前的点,我可以设置一个规则,以便它将索引距离 24 小时前最近的点吗?

示例 df:

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

最佳答案

您实际上可以创建另一个数据框,将时间提前一天。

假设数据是

    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:00,则 Volume_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}}

关于python - 按时间差索引 pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48351637/

相关文章:

python - 我应该使用哪个类来抓取图像链接?我正在使用 scrapy 和 spider lib

python - 根据条件删除 pandas DataFrame 中的重复行

pandas - 将 Pandas DataFrame 转换为类似字节的对象

python - 对日期和给定日期中的值数量进行排序

r - data.table 中的条件连接?

python - 从列中提取部分值

Python - 运行 Excel 宏

python - Numpy - 数组如何 reshape 它

python - Pandas 和 Numpy 中的不同标准差

python - python中的高效列表映射