【发布时间】:2017-03-23 20:31:43
【问题描述】:
我有一个包含此表的文本文件:
Ion TheoWavelength Blended_Set
Line_Label
H1_4340A Hgamma_5_2 4340.471 None
He1_4472A HeI_4471 4471.479 None
He2_4686A HeII_4686 4685.710 None
Ar4_4711A [ArIV] 4711.000 None
Ar4_4740A [ArIV] 4740.000 None
H1_4861A Hbeta_4_2 4862.683 None
此表是使用 dataframe.to_string 从 pandas 数据帧生成的,然后保存 unicode 变量。
我想使用 pandas 函数从这个文件创建一个数据框:
import pandas as pd
df = pd.read_csv('my_table_file.txt', delim_whitespace = True, header = 0, index_col = 0)
但是我得到了这个错误
Traceback (most recent call last):
File
df = pd.read_csv(table, delim_whitespace = True, header = 0, index_col = 0)
File "/home/user/anaconda/python2/lib/python2.7/site-packages/pandas/io/parsers.py", line 562, in parser_f
return _read(filepath_or_buffer, kwds)
File "/home/user/anaconda/python2/lib/python2.7/site-packages/pandas/io/parsers.py", line 325, in _read
return parser.read()
File "/home/user/anaconda/python2/lib/python2.7/site-packages/pandas/io/parsers.py", line 815, in read
ret = self._engine.read(nrows)
File "/home/user/anaconda/python2/lib/python2.7/site-packages/pandas/io/parsers.py", line 1314, in read
data = self._reader.read(nrows)
File "pandas/parser.pyx", line 805, in pandas.parser.TextReader.read (pandas/parser.c:8748)
File "pandas/parser.pyx", line 827, in pandas.parser.TextReader._read_low_memory (pandas/parser.c:9003)
File "pandas/parser.pyx", line 881, in pandas.parser.TextReader._read_rows (pandas/parser.c:9731)
File "pandas/parser.pyx", line 868, in pandas.parser.TextReader._tokenize_rows (pandas/parser.c:9602)
File "pandas/parser.pyx", line 1865, in pandas.parser.raise_parser_error (pandas/parser.c:23325)
pandas.io.common.CParserError: Error tokenizing data. C error: Expected 3 fields in line 3, saw 4
我敢说这是由于索引列名称在它自己的行中引起的。
有没有办法避免这个问题或者导出表格而不包含这个标签?
附:我尝试使用 dataframe.to_csv 表,但据我所知,如果它们具有不同的 dtype,它不允许您使用表列格式
【问题讨论】:
标签: python csv pandas dataframe