【问题标题】:Error when using skiplines when using read_csv in Pandas在 Pandas 中使用 read_csv 时使用跳线时出错
【发布时间】:2015-05-23 12:28:52
【问题描述】:

我正在尝试使用 Pandas 库中的 read_csv 将数据框导入 Python。数据文件 (annual_precip.csv) 的顶部如下所示:

Average annual precipitation and land area ,,
,mm/year,thousand km^2
country,precip,area
Afghanistan,327,652.2
Albania,1485,27.4
Algeria,89,2381.7
American Samoa,,0.2

这是我的代码:

from pandas import read_csv
read_csv('annual_precip.csv', index_col = [0], skiprows = 2)

这会产生以下错误:

Traceback (most recent call last):`

File "<ipython-input-894-742b462476f6>", line 1, in <module>
rain =read_csv('exploratory_computing_with_python/notebook5/annual_precip.csv', skiprows = 2, index_col = [0])`

File "/Users/jakoberickson/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py", line 465, in parser_f
return _read(filepath_or_buffer, kwds)`

File "/Users/jakoberickson/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py", line 241, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)`

File "/Users/jakoberickson/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py", line 557, in __init__
self._make_engine(self.engine)`

File "/Users/jakoberickson/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py", line 694, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)`

File "/Users/jakoberickson/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py", line 1061, in __init__
self._reader = _parser.TextReader(src, **kwds)`

File "pandas/parser.pyx", line 512, in pandas.parser.TextReader.__cinit__ (pandas/parser.c:4804)`

ValueError: No columns to parse from file`

当我跳过 1 或 0 行但我的列名称不正确时,我没有收到任何错误。如果这有什么不同,我正在优胜美地的 Anaconda 包中运行 Spyder 2.3.4。

【问题讨论】:

  • 它适用于您帖子中的 csv 示例

标签: python csv pandas


【解决方案1】:

它适用于您示例中的 csv 示例,但您的问题是您的 csv 文件包含不可打印的字符。

试试这个:

df = pd.read_csv('annual_precip.csv', index_col = [0],  encoding='utf-8', skiprows = 2)

【讨论】:

  • Wajdi,我试过了,我得到了一个不同的错误:CParserError: Error tokenizing data. C error: Calling read(nbytes) on source failed. Try engine='python'. 使用engine = 'python' 参数只是吐出另一个错误UTF-16 stream does not start with BOM'.
  • hmmmm...你有什么版本的熊猫? @BabyJ
  • 0.15.2 @Wajdi Farhani
【解决方案2】:

我将pandas 更新为“0.16.1”,现在没有任何问题。感谢您的帮助@Wajdi Farhani

【讨论】:

    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 2021-12-31
    • 2013-07-07
    • 1970-01-01
    • 2018-11-15
    • 2016-08-22
    • 2018-03-19
    • 2016-06-02
    相关资源
    最近更新 更多