gpt4 book ai didi

python - usecols 与 parse_dates 和名称

转载 作者:行者123 更新时间:2023-11-28 22:00:43 24 4
gpt4 key购买 nike

我正在尝试以下列格式加载包含 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,,,,

我尝试了以下加载数据的方法。

df = read_csv('500008.csv', parse_dates=[0,1,2], usecols=range(6), 
header=None, index_col=0)

但是现在我想命名要命名的列。所以,我试过了,

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())

但这并没有说明,

IndexError: list index out of range

谁能指出我做错了什么?

最佳答案

我不知道它是一个错误还是一个功能,但你必须为存在的所有列指定名称,即使你只指定列的子集到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())

给出

                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

我通过尝试为 namesusecols 指定完整列表的边缘情况来解决这个问题,然后尝试逐渐减少并查看会发生什么。

奇怪的是当你尝试 usecols=[1,2,3]names=['1','2','3 ']:

ValueError: Passed header names mismatches usecols

这没有意义...

关于python - usecols 与 parse_dates 和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297959/

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