【发布时间】:2018-05-16 13:04:30
【问题描述】:
我有一个每月的tick数据要分析,是这样的:
Time (UTC),Ask,Bid,AskVolume,BidVolume
2007.04.01 21:00:47.593,95.203,95.159,19.1,8.8
2007.04.01 21:00:47.968,95.174,95.124,23.9,9.2
2007.04.01 21:01:02.695,95.132,95.092,4,4
2007.04.01 21:01:05.934,95.154,95.104,11.2,4
2007.04.01 21:01:18.430,95.171,95.131,12,5.2
2007.04.01 21:01:19.957,95.188,95.153,8,9.2
2007.04.01 21:01:56.308,95.208,95.148,22.3,4
2007.04.01 21:01:57.233,95.192,95.152,7.2,9.2
2007.04.01 21:01:57.443,95.188,95.143,7.2,9.2
2007.04.01 21:01:59.691,95.184,95.139,7.2,9.2
2007.04.01 21:01:59.934,95.181,95.141,8,3.9
2007.04.01 21:02:10.569,95.171,95.136,11.9,4
2007.04.01 21:02:20.708,95.166,95.126,11.2,8.8
2007.04.01 21:02:35.211,95.17,95.135,21.5,4
2007.04.01 21:02:39.946,95.196,95.156,7.2,8.8
2007.04.01 21:02:40.206,95.224,95.164,0.8,0.8
2007.04.01 21:02:43.600,95.222,95.177,8,9.2
2007.04.01 21:02:54.578,95.216,95.186,25.5,5.2
2007.04.01 21:03:04.811,95.23,95.18,7.9,7.9
一直到每月的最后一天。
只要当天卖价的百分比变化((max - min) / max) 大于 0.05,我就需要知道这一天。我的方法是每天分离数据,计算百分比变化,看看当天价格是否下跌超过 5%,如果是,则返回当天。我是 pandas 的新手,到目前为止,这是我所拥有的:
import pandas as pd
df = pd.read_csv('AUDJPY_Ticks_2007.04.01_2007.04.30.csv')
percentChange = ((df['Ask'].max() - df['Ask'].min()) / df['Ask'].max()) >= 0.05
print(percentChange)
我只能得到整个月而不是每天的百分比变化。
【问题讨论】:
-
第一步肯定是import your time as a datetime index 和
index_col = "Time (UTC)", parse_dates = ["Time (UTC)"]。然后你可能想看看pandas rolling window -
感谢您的建议!我会调查的。