【发布时间】:2018-07-03 14:15:33
【问题描述】:
我正在尝试遵循这个例子:
以下格式的数据存储在 csv 文件中:
Date Open High Low Close Adj. close Volume
23/01/2018 1.00 3.00 2.00 2.10 2.15 1000
使用以下代码读取此数据:
self.symbol_data[s] = pd.io.parsers.read_csv( os.path.join(self.csv_dir,
’%s.csv’ % s),
header=0, index_col=0, parse_dates=True,
names=['datetime’, ’open’, ’high’, ’low’, ’close’, ’volume’, ’adj_close’]).sort()
只是为了检查 .sort() 按第一列中的值对帧进行排序是否正确?
我的问题是我使用不同版本的 Python 3.6 与他的 2.x 和不同版本的 pandas 0.22.0 vs(不确定,但它更旧),我也试图从不同的具有不同格式的源。有一些额外的列,列的名称略有不同。
timestamp open high low close adjusted_close Volume div_amt split
23/01/2018 1.00 3.00 2.00 2.10 2.15 1000 0 1
self.symbol_data[s] = pd.read_csv(os.path.join(self.csv_dir, '%s.csv' %s),
usecols=[0,1,2,3,4,5,6],
header=0, index_col=0, parse_dates=True,
names=['timestamp', 'open', 'high','low', 'close', 'adjusted_close',
'volume']).sort_values(by=['timestamp'])
上面的 pd.read_csv 调用会实现我想要的吗?
是否可以按名称选择要读取的列?
我还可以检查 names=[] 是指 Pandas DateFrame 中的列吗?
我认为python帮助对此并不清楚:
names :要使用的列名列表。
pandas 数据框的 csv 文件的哪些列以及用于什么?
无论如何,目前我在排序部分遇到问题。 sort_values 是否与上面的 sort() 等效(by='timestamp')?
我也收到此错误:
KeyError: '时间戳'
关于如何解决这个问题的任何建议?
【问题讨论】: