【问题标题】:Why pandas read_csv returns only the first 1024 columns?为什么 pandas read_csv 只返回前 1024 列?
【发布时间】:2018-11-13 10:36:06
【问题描述】:

我们在 jupyter notebook 上使用 pandas 来加载一个 csv 文件,例如:

 import pandas as pd
 dat=pd.read_csv("data.csv")

多次运行上述代码行仅返回前 1024 列。我们尝试了以下选项:

pd.read_csv("data.csv", na_values ='na', engine='python', delimiter=',', header=0, quoting=csv.QUOTE) to no avail. 

这是数据的快照:

将 csv 文件作为 pandas 数据框读取的正确方法是什么?

【问题讨论】:

  • 如果没有您的实际 csv 就无法回答以重现
  • 我认为 read_csv 不会限制您读取标头长度超过 1024 的 csv 文件。我为您检查了下面的代码,df=pd.DataFrame(index=range(1),columns=range(1200)) df.to_csv('s14.csv') df=pd.read_csv('s14.csv') print df 但按我的预期工作。
  • read_csv 是将 csv 文件作为 pandas 数据帧读取的正确方法。你得到所有的列吗?还是只显示 1024 列?为您的问题提供更多详细信息
  • 我过去发现 Excel 将文档限制为一定数量的列,也许这就是您的问题的原因?
  • @svk - 我认为您的文件仅解析为仅获得 1024 列,文件一定存在问题,一个典型的问题是分隔符意外中断。请仔细查看您的输入文件。

标签: python pandas csv


【解决方案1】:

检查您正在使用的 csv 文件。我刚刚测试了 read_csv 的 1,804 列,它确实有效。

请看下面的模型:

import pandas as pd
dat=pd.read_csv("bigcolumns.csv")
dat

结果:

【讨论】:

  • 我已经添加了数据快照。它实际上以 .csv 文件的形式存储在 librecalc 中。
  • 它真的没有多大帮助。我不确定如何将 10 行的 csv 文件保存在某个地方供其他人使用。但这可能是要走的路。其实你也可以试试。保存 10 行和所有列,看看它是否有效。
  • 即使列较少也是同样的问题。我怀疑这是因为 clrf/lf。有没有办法以这种方式标准化 csv 文件?
猜你喜欢
  • 1970-01-01
  • 2014-09-20
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
  • 2016-07-18
相关资源
最近更新 更多