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 では、以下のエラーが発生します。2 つの異なるシステムに .7 と .8 をインストールしているため、依存関係や Python のバージョンの違いを除外していません。これを.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 に答える