gpt4 book ai didi

python - 使用 Pandas 库将历史 Metatrader CSV 数据导入 Python(日期/时间解析)

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:49 25 4
gpt4 key购买 nike

我有一些 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 函数用 Python 导入这个文件...

所以我这样做了:

#!/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 个“日期时间”列。

最佳答案

列的索引为零,因此您需要执行 parse_dates=[[0,1]]
这是最新版本的 Pandas ,但应该适用于 0.8.0+:

In [74]: data = """\
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
"""

In [75]: pd.read_csv(StringIO(data),
names=['Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume'],
index_col='Date_Time', parse_dates=[[0, 1]])
Out[75]:
Open High Low Close Volume
Date_Time
2011-12-08 22:45:00 1.33434 1.33465 1.33415 1.33419 265
2011-12-08 23:00:00 1.33419 1.33542 1.33419 1.33472 391
2011-12-08 23:15:00 1.33470 1.33483 1.33383 1.33411 420
2011-12-08 23:30:00 1.33413 1.33451 1.33389 1.33400 285

注意 index_col=0 也可以。复杂的日期解析前置结果列,因此 parse_dates 将引用处理日期前的列索引(即 0 是日期,1 是时间),index_col 引用处理日期后的列索引。因此,建议使用列名,因为它使您不必考虑处理前和处理后的列索引。

关于python - 使用 Pandas 库将历史 Metatrader CSV 数据导入 Python(日期/时间解析),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11673453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com