我有一些像
这样的CSV数据2011.12.08,22:45,1.33434,1.33465,1.33415,1.33419,265
2011.12.08,23:00,1.33419,1.33542,1.33419,1.33472,391
2011.12.08,23:15,1.33470,1.33483,1.33383,1.33411,420
2011.12.08,23:30,1.33413,1.33451,1.33389,1.33400,285
来自Metatrader 4的文件名为EURUSD15.csv
我想使用Pandas库和read_csv函数导入这个文件...
所以我这样做了:
#!/usr/bin/env python
from pandas import *
df = read_csv('data/EURUSD15.csv', header=None)
df.columns = ['Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume']
print(df)
我现在要解析日期/时间......
所以我改变了
df = read_csv('data/EURUSD15.csv', header=None)
到
df = read_csv('data/EURUSD15.csv', header=None, parse_dates=[[1, 2]])
但我收到此错误消息
Exception: Length mismatch (7 vs 6)
如何解析日期和时间列,并将2列视为1“datetime”列。
答案 0 :(得分:0)
parse_dates不接受索引值。
尝试类似:
pd.read_csv('data/EURUSD15.csv', parse_dates = [['YYYY.MM.DD', 'HH:MM']], index_col = 0,
date_parser=parse)
答案 1 :(得分:0)
parse = lambda x: datetime.strptime(x, '%d-%m-%Y %H:%M')
df = pd.read_csv('data/EURUSD15.csv', parse_dates=[[0, 1]], date_parser=parse, index_col=[0], header=None)
keys = ['Open', 'High', 'Low', 'Close','Volume']
df.columns = [x for x in keys]
答案 2 :(得分:0)
更简单的方法是使用名为 pytrader 的拖放解决方案,请在 github 上查看。