0

我正在尝试在 python 中执行以下操作:

from pandas import *
tickdata = read_csv('/home/user/sourcefile.csv',index_col=0,parse_dates='TRUE')

csv 文件的行如下所示:

2011/11/23 23:56:00.554389,1165.2500
2011/11/23 23:56:02.310943,1165.5000
2011/11/23 23:56:05.564009,1165.2500

在 pandas .7 上,这执行得很好。在 pandas .8.0rc2 上,我收到以下错误。因为我在两个不同的系统上安装了 .7 和 .8,所以我没有排除依赖关系或 python 版本差异。任何关于如何让它在 0.8 下执行的想法都值得赞赏。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.0rc2-py2.7-linux-x86_64.egg/pandas/io/parsers.py", line 225, in read_csv
return _read(TextParser, filepath_or_buffer, kwds)

File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.0rc2-py2.7-linux-x86_64.egg/pandas/io/parsers.py", line 192, in _read
return parser.get_chunk()
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.0rc2-py2.7-linux-x86_64.egg/pandas/io/parsers.py", line 728, in get_chunk
index = self._agg_index(index)
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.0rc2-py2.7-linux-x86_64.egg/pandas/io/parsers.py", line 846, in _agg_index
if try_parse_dates and self._should_parse_dates(self.index_col):
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.0rc2-py2.7-linux-x86_64.egg/pandas/io/parsers.py", line 874, in _should_parse_dates
return i in to_parse or name in to_parse
TypeError: 'in <string>' requires string as left operand, not int
4

2 回答 2

0

我已经在 GitHub 上报告了这个错误(错误报告的最佳位置):

https://github.com/pydata/pandas/issues/1544

今天或明天应该有一个决议。

于 2012-06-28T13:42:19.197 回答
0

我修复了您粘贴的堆栈跟踪中显示的解析器错误。但是,我想知道您的日期列是否被命名为“TRUE”,或者您的意思是只传递一个布尔值?我没有仔细研究过 pandas 的历史,但我知道在 0.8 中,我们支持更复杂的日期解析行为作为时间序列 API 的一部分,所以在这里我们将字符串值解释为列名。

于 2012-06-28T14:11:36.133 回答