【问题标题】:Pandas .DAT file import error with skip rows带有跳过行的 Pandas .DAT 文件导入错误
【发布时间】:2016-12-01 15:42:20
【问题描述】:

我正在尝试将一个巨大的数据文件分成更小的部分。我正在使用以下脚本 -

 df = pd.read_csv(file_name, header=None,encoding='latin1',sep='\t',nrows=100000, skiprows = 100000)

但我看到 skip rows 参数跳过了大约 200000 行而不是 100000 任何人都可以告诉我为什么会发生这种情况

【问题讨论】:

  • 为什么不直接指定一个chunksize=100000,它会返回一个 df 切片,然后您可以为每个块拆分 df?
  • 实际文件为 190 GB,我无法一次将其全部读入内存
  • 你不需要 chunksize 这只会读取下一个块大小的行,然后你可以对那个块做任何你想做的事情
  • 所以我在一个 2.3 gb 的样本文件上实现了 chunksize,有 15041273 行,我试图使用带有以下代码 tp = pd.read_csv(r'E:\Utkarsh\Test\feed_3068_20160920_20160927.dat',header=None,encoding='latin1', sep='\t', iterator=True, chunksize=100000) df = pd.concat(tp, ignore_index=True) print(df) 的 chunksize 来读取它,但是 df 将整个数据加载到其中100000 行的块大小。我没有正确实施它吗?
  • 190 GB 文件?听起来像是 Spark/Hadoop 等大数据平台的工作,而不是 Pandas

标签: python pandas import data-files


【解决方案1】:

感谢@EdChum,我能够通过以下代码使用 chunksize 解决问题:-

i = 0
tp = pd.read_csv(filename,header=None,encoding='latin1', sep='\t', iterator=True, chunksize=1000000)
for c in tp:
    ca = pd.DataFrame(c)
    ca.to_csv (file_destination +str(i)+'test.csv', index = False, header = False)
    i = i+1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-27
    • 2014-01-05
    • 2017-06-20
    相关资源
    最近更新 更多