我正在尝试使用以下格式的OHLC数据加载csv文件。
In [49]: !head '500008.csv'
03 Jan 2000,12.85,13.11,12.74,13.11,976500,,,,
04 Jan 2000,13.54,13.60,12.56,13.33,2493000,,,,
05 Jan 2000,12.68,13.34,12.37,12.68,1680000,,,,
06 Jan 2000,12.60,13.30,12.27,12.34,2800500,,,,
07 Jan 2000,12.53,12.70,11.82,12.57,2763000,,,,
10 Jan 2000,13.58,13.58,13.58,13.58,13500,,,,
11 Jan 2000,14.66,14.66,13.40,13.47,1694220,,,,
12 Jan 2000,13.66,13.99,13.20,13.54,519164,,,,
13 Jan 2000,13.67,13.87,13.54,13.80,278400,,,,
14 Jan 2000,13.84,13.99,13.30,13.50,718814,,,,
Run Code Online (Sandbox Code Playgroud)
我尝试了以下加载数据的方法。
df = read_csv('500008.csv', parse_dates=[0,1,2], usecols=range(6),
header=None, index_col=0)
Run Code Online (Sandbox Code Playgroud)
但是现在我想命名要命名的列。所以,我尝试了
df = read_csv('500008.csv', parse_dates=[0,1,2], usecols=range(6),
header=None, index_col=0, names='d o h l c v'.split())
Run Code Online (Sandbox Code Playgroud)
但这不能说,
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
有人可以指出我做错了吗?
我不知道它是否是错误或功能,但是即使您只指定要显示的所有列的子集,也必须为存在的所有列指定名称usecols
df = pd.read_csv(StringIO(raw),
parse_dates=True,
header=None,
index_col=0,
usecols=[0,1,2,3,4,5],
names='0 1 2 3 4 5 6 7 8 9'.split())
Run Code Online (Sandbox Code Playgroud)
这使
1 2 3 4 5
0
2000-01-03 12.85 13.11 12.74 13.11 976500
2000-01-04 13.54 13.60 12.56 13.33 2493000
2000-01-05 12.68 13.34 12.37 12.68 1680000
Run Code Online (Sandbox Code Playgroud)
我通过尝试在边缘情况下为两者都指定完整列表来解决这个问题names
,usecols
然后尝试逐步减少并查看会发生什么情况。
奇怪的是,当您尝试例如usecols=[1,2,3]
和时收到的错误消息names=['1','2','3']
:
ValueError: Passed header names mismatches usecols
Run Code Online (Sandbox Code Playgroud)
这没有意义...
归档时间: |
|
查看次数: |
3800 次 |
最近记录: |