【问题标题】:Python : How to create multiple CSV from the large pandas dataframe without duplicating the records in CSV's createdPython:如何从大熊猫数据框中创建多个 CSV,而不复制 CSV 中创建的记录
【发布时间】:2020-01-14 21:57:24
【问题描述】:

我在数据框中有 100 万条记录,并希望将每个记录保存到 100k 的 CSV 中。我按照下面的方法进行了操作,但它将所有 100 万条记录保存在一个 CSV 中,而不是多个 CSV 中。

out_file = open(outdir + out_file_m.csv,'w')
pd.df_.to_csv(out_file, chunksize = 100000, index = None, header = True)

【问题讨论】:

  • 这不是 'chunksize' 的用途。您需要将其拆分为您想要的大小并将每个文件写入文件。一种内置的方式来做你想做的事
  • 请澄清问题到底是什么。您没有阅读read_csv 的有关chunksize 参数的文档吗?

标签: python pandas


【解决方案1】:

使用 For 循环并在每次迭代中抓取 100000 行并保存,执行 10 次,您可以使用计数器来适当地调整文件命名。 :)

(针对名称中使用的 c 变量的类型转换问题进行了更新)

size = 100000
for x in range(0, len(df)//size):     
    f = x*size
    t = min((x+1)*size, len(df))
    file_name = f"CSV_{x+1}.csv"
    df[f:t].to_csv(file_name, index=False)

这应该非常接近。 :)

【讨论】:

  • 请分享几行代码以彻底理解。这真的很有帮助。
  • 感谢您的回复。有错误...... file_name = 'CSV_' + c + '.csv' TypeError: must be str, not int
  • 谢谢@FBruzzesi,我昨晚回家时想到了那个更新。还有更多优化和清理它的方法。理想情况下,我们希望根据数据框的大小运行它,以便如果它不完全是 1,000,000 行,我们可以在最后获得部分文件。也许可以使用MOD。 :)
  • 感谢@FBruzzesi,我通过添加 str(c) 解决了类型转换,它起作用了。
  • 谢谢!添加了您的建议,几乎与我的想法一致。 #highfive
猜你喜欢
  • 2017-06-17
  • 2019-03-31
  • 2020-05-11
  • 2017-05-01
  • 2016-09-06
  • 2012-12-07
  • 2017-08-27
  • 2012-05-19
  • 2017-04-10
相关资源
最近更新 更多