报错如下:
f = pd.read_table(data, sep = "+\s", header = None)
Traceback(most recent call last) :
File "<ipython-input-27-e09df1fe7a5f>", line 1, in <module>
f = pd.read_table(data, sep = "+\s", header = None, engine = 'python')
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 678, in parser_f
return _read(filepath_or_buffer, kwds)
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 440, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 787, in __init__
self._make_engine(self.engine)
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 1024, in _make_engine
self._engine = klass(self.f, **self.options)
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 2089, in __init__
self.columns, self.num_original_columns = self._infer_columns()
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 2455, in _infer_columns
line = self._buffered_line()
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 2530, in _buffered_line
return self._next_line()
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 2635, in _next_line
orig_line = self._next_iter_line(row_num = self.pos + 1)
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 2695, in _next_iter_line
return next(self.data)
File "/root/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 2229, in _read
pat = re.compile(sep)
File "/root/anaconda2/lib/python2.7/re.py", line 194, in compile
return _compile(pattern, flags)
File "/root/anaconda2/lib/python2.7/re.py", line 251, in _compile
raise error, v # invalid expression
error : nothing to repeat
百度了很多都是关于正则表达式的问题。
还有的解决办法如下:
是在最后加上 engine= 'python'
f = pd.read_table(data, sep="+\s", header=None, engine='python')
问题仍然没有解决。
最后自己解决如下:
f = pd.read_table(data, sep="\s", header=None)
原因是正则表达式匹配的严格要求, "+"表示匹配多个重复项,删去问题解决。