当前位置: 首页 > 面试题库 >

pandas read_csv预期列数错误,且CSV文件不完整

常永怡
2023-03-14
问题内容

我有一个csv文件,其中包含几百行和26列,但最后几列仅在几行中有一个值,它们朝向文件的中间或结尾。当我尝试使用read_csv()读取它时,出现以下错误。“ValueError:期望有23列,在第64行中有26列”

我看不到在哪里明确说明文件中的列数,或者如何确定文件认为应该包含多少列。转储在下面

In [3]:

infile =open(easygui.fileopenbox(),"r")
pledge = read_csv(infile,parse_dates='true')


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-b35e7a16b389> in <module>()
      1 infile =open(easygui.fileopenbox(),"r")
      2 
----> 3 pledge = read_csv(infile,parse_dates='true')


C:\Python27\lib\site-packages\pandas-0.8.1-py2.7-win32.egg\pandas\io\parsers.pyc in read_csv(filepath_or_buffer, sep, dialect, header, index_col, names, skiprows, na_values, thousands, comment, parse_dates, keep_date_col, dayfirst, date_parser, nrows, iterator, chunksize, skip_footer, converters, verbose, delimiter, encoding, squeeze)
    234         kwds['delimiter'] = sep
    235 
--> 236     return _read(TextParser, filepath_or_buffer, kwds)
    237 
    238 @Appender(_read_table_doc)

C:\Python27\lib\site-packages\pandas-0.8.1-py2.7-win32.egg\pandas\io\parsers.pyc in _read(cls, filepath_or_buffer, kwds)
    189         return parser
    190 
--> 191     return parser.get_chunk()
    192 
    193 @Appender(_read_csv_doc)

C:\Python27\lib\site-packages\pandas-0.8.1-py2.7-win32.egg\pandas\io\parsers.pyc in get_chunk(self, rows)
    779             msg = ('Expecting %d columns, got %d in row %d' %
    780                    (col_len, zip_len, row_num))
--> 781             raise ValueError(msg)
    782 
    783         data = dict((k, v) for k, v in izip(self.columns, zipped_content))

ValueError: Expecting 23 columns, got 26 in row 64

问题答案:

您可以使用names参数。例如,如果您有这样的csv文件:

1,2,1
2,3,4,2,3
1,2,3,3
1,2,3,4,5,6

并尝试阅读它,您会收到错误消息

>>> pd.read_csv(r'D:/Temp/tt.csv')
Traceback (most recent call last):
...
Expected 5 fields in line 4, saw 6

但是,如果传递names参数,则会得到结果:

>>> pd.read_csv(r'D:/Temp/tt.csv', names=list('abcdef'))
   a  b  c   d   e   f
0  1  2  1 NaN NaN NaN
1  2  3  4   2   3 NaN
2  1  2  3   3 NaN NaN
3  1  2  3   4   5   6

希望能帮助到你。



 类似资料:
  • 当我试图在Python中打印CSV文件的内容时,我得到了这个错误。 回溯(最近调用最后):文件“/users/cassandracampbell/library/preferences/pycharmce2018.2/scratches/player.py”,第5行,在打开('player.csv')的csvfile:filenotfounderror:[errno2]中没有这样的文件或目录:'p

  • 问题内容: 因此,我制作了一个名为util的文件夹,并在其中放置了四个类以及名为unit10Assignment的程序。我创建了一个包util,并在每个类代码的顶部键入“ package util;”,如下所示: 然后我写道: 在程序之上。但是,当我编译它时,它会告诉我。有人知道为什么吗?我尝试使用它,当我输入import java.util *时,它消失了;相反,但我不确定我的老师想作为她的示例

  • 我有一个CSV文件,有三列:col1,col2,col3。我试图在这个文件中附加一个只包含col2的数据框 结果是: 我希望: 有可能以某种方式实现这一点吗?

  • 我不断地得到这个错误,我并没有试图解决它。 包bonuscalc; 导入java.text.DecimalFormat;导入java.util.scanner; 公共类BonusCalc{/***@param args命令行参数*/public static void main(String[]args){ }

  • 我正在处理一个csv文件,在此之前,我使用下面的代码获取行数。 代码是在这个链接中给出的帮助下编写的。但是,total_rows与csv文件中的实际行数不匹配。我已经找到了一个替代方案,但想知道为什么这是不正确的工作?? 在CSV文件中,有大量文本的单元格,我必须使用编码来避免读取CSV文件时出错。 感谢您的帮助!

  • 这是我运行程序时收到的错误: 注:[19533]是我使用的一个测试值。 这是在CustomerServiceBeanImpl.java中出现错误的方法: 在快速检查ERD时,“Customer”表中的“id”列的数据类型为bigint。然而,我不确定这是否重要。(顺便提一下PostgreSQL数据库。) 如何修复此错误?