我有一个csv文件,例如test.csv,看起来像这样
Data 1 | Data 2 | Data 3 |
1 | 2 | 3 | | | 6
如果我用记事本++或文本打开csv,它会显示如下
Data 1, Data 2, Data 3
1,2,3,,,6
instead of
Data 1, Data 2, Data 3, ,,
1,2,3,,,6
使用pandas.read_csv时出现错误,因为我的行中的列多于标题行中声明的列。有没有办法找到整个CSV的最大列数?
答案 0 :(得分:0)
我的建议是:
因此代码应为:
df = pd.read_csv(io.StringIO(txt), skiprows=1,
names=['Data 1', 'Data 2', 'Data 3', 'Data 4', 'Data 5', 'Data 6'])
要考虑的一个细节是如何表示空白单元格。
read_csv 的默认行为是将其视为 NaN ,但是 不利的一面是,此类列被强制为 float 。
另一种可能性是传递na_filter=False
参数,然后:
还请注意,标题行的格式又被破坏了 详情。问题的根源是逗号后的空格: 它们成为下一列名称的开头。
因此,即使只有3列数据,列名称也将是:
['Data 1', ' Data 2', ' Data 3']
(请注意前导空格)。因此,这是跳过 标题行。