Python 我无法使用pd.read_CSV读取此CSV文件,该文件具有不同数量的预期值
我已经试了几个小时来阅读这个文件。我尝试过研究解决方案并加以应用。它们不起作用。文件本身在Excel上可以很好地打开,但我不能用Pandas读取它 响应不断返回相同的错误:Python 我无法使用pd.read_CSV读取此CSV文件,该文件具有不同数量的预期值,python,pandas,csv,Python,Pandas,Csv,我已经试了几个小时来阅读这个文件。我尝试过研究解决方案并加以应用。它们不起作用。文件本身在Excel上可以很好地打开,但我不能用Pandas读取它 响应不断返回相同的错误:parserror:saw63第5行应包含3个字段 我已经看到了关于这个话题的一些其他问题,但这些具体问题的解决方案都没有解决我的问题 有人知道我为什么无法读取此文件以及如何修复它吗?多谢各位 在: 输出: 尝试更改pd.read_csv()中sep参数的值。将代码更改为 data=pd.read_csv('API_EN.AT
parserror:saw63第5行应包含3个字段
我已经看到了关于这个话题的一些其他问题,但这些具体问题的解决方案都没有解决我的问题
有人知道我为什么无法读取此文件以及如何修复它吗?多谢各位
在:
输出:
尝试更改pd.read_csv()中sep参数的值。将代码更改为
data=pd.read_csv('API_EN.ATM.CO2E.PC_DS2_en_csv_v2_10181020.csv', header=None, engine='python', error_bad_lines=False)
将导入您的csv,但无法正确导入您的csv。可能您的csv和使用的分隔符有问题。你能发布你试图导入的csv的第五行吗?例如,最后一列是否包含带逗号的文本?您希望有多少列:3、63或其他?尝试使用data=pd.read\u csv('API\u EN.ATM.CO2E.PC\u DS2\u EN\u csv\u v2\u 10181020.csv',error\u bad\u lines=False)
共享您尝试读取的csv
的示例。您确定没有需要跳过的跨多行的标题吗?解析器将基于第一行标记数据,因此如果第一行包含的字段比文件的其余部分多或少,它将无法正确解析。skiprows
参数将对此有所帮助。这是CSV文件的第5行:我尝试了“error\u bad\u lines=False”,它以前不起作用。但是,我尝试了那行代码,它跳过了文件中的每一行。跳过的每一行都写着:“第21行应该有3个字段,SAW63”所以,看看你的样本数据,你肯定有3个以上的列。。。我数62,但后面的逗号等于63。标题行真的是csv的第一行吗?你说得对!标题不是第一行。在CSV文件中,我删除了标题上方的所有行,并且文件在Python中正确读取。谢谢,您也可以在pd.read_csv()中使用skiprows参数执行此操作。在这种情况下,可能data=pd.read\u csv('API\u EN.ATM.CO2E.PC\u DS2\u EN\u csv\u v2\u 10181020.csv',skiprows=4)(或者5,我不确定您得到的错误是否为0索引)。
ParserError Traceback (most recent call last)
<ipython-input-96-0d42116a039d> in <module>()
2 header=None,
3 engine='python',
----> 4 error_bad_lines=True)
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
676 skip_blank_lines=skip_blank_lines)
677
--> 678 return _read(filepath_or_buffer, kwds)
679
680 parser_f.__name__ = name
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
444
445 try:
--> 446 data = parser.read(nrows)
447 finally:
448 parser.close()
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
1034 raise ValueError('skipfooter not supported for iteration')
1035
-> 1036 ret = self._engine.read(nrows)
1037
1038 # May alter columns / col_dict
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, rows)
2264 content = content[1:]
2265
-> 2266 alldata = self._rows_to_cols(content)
2267 data = self._exclude_implicit_index(alldata)
2268
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _rows_to_cols(self, content)
2907 msg += '. ' + reason
2908
-> 2909 self._alert_malformed(msg, row_num + 1)
2910
2911 # see gh-13320
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _alert_malformed(self, msg, row_num)
2674
2675 if self.error_bad_lines:
-> 2676 raise ParserError(msg)
2677 elif self.warn_bad_lines:
2678 base = 'Skipping line {row_num}: '.format(row_num=row_num)
ParserError: Expected 3 fields in line 5, saw 63
"Country_Name","Country_Code","Indicator_Name","Indicator_Code","1960","1961","1962","1963","1964","1965","1966","1967","1968","1969","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017",
"Aruba","ABW","CO2 emissions (metric tons per capita)","EN.ATM.CO2E.PC","","","","","","","","","","","","","","","","","","","","","","","","","","","2.86831939212055","7.23519803341258","10.0261792105306","10.6347325992922","26.3745032100275","26.0461298009966","21.4425588041328","22.000786163522","21.0362451108214","20.7719361585578","20.3183533653846","20.4268177083943","20.5876691453648","20.311566765912","26.1948752380219","25.9340244138733","25.6711617820448","26.4204520857169","26.5172934158421","27.200707780588","26.9482604728658","27.8955739972338","26.2308466448946","25.9158329472761","24.6705288731078","24.5058352032767","13.1555416906324","8.35129425218293","8.408362637892","","","",
data=pd.read_csv('API_EN.ATM.CO2E.PC_DS2_en_csv_v2_10181020.csv', header=None, engine='python', error_bad_lines=False)