【问题标题】:Break large CSV dataset into shorter chunks将大型 CSV 数据集分成更短的块
【发布时间】:2016-12-12 00:43:42
【问题描述】:

我有一个大的排序(在公司序列上)csv 文件(331 MB 的 TNIC 数据集),其中列出了公司之间的成对相关性。

每一行都是这样的:

[Score, Some-Company-Serial, Other-Company-Serial, year]

Some-Company-Serial 和 Other-Company-Serial 都是整数。

我想将这个大的 CSV 文件分成更短的 csv 块。每个块只有一个公司与其他公司的分数。也就是说,

Chunk1:companyA.csv:

[Score, Company-A, Company-B, year]
[Score, Company-A, Company-C, year]
[Score, Company-A, Company-D, year]
[Score, Company-A, Company-E, year]
[Score, Company-A, Company-F, year]

Chunk2:companyB.csv:

[Score, Company-B, Company-A, year]
[Score, Company-B, Company-C, year]
[Score, Company-B, Company-D, year]
[Score, Company-B, Company-E, year]
[Score, Company-B, Company-F, year]

.. 等等。

有什么好的、快速的和 Pythonic 的方式(或任何其他有效的方式)来做到这一点?

CSV 文件的样本是here 以供参考。

【问题讨论】:

    标签: python csv pandas


    【解决方案1】:

    我会这样做:

    df = pd.read_csv('TNIC.csv')
    for k, g in df.groupby('gvkey_1'):
        g.to_csv('Company_' + str(k) + '.csv', index=False)
    

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2017-11-27
      • 2014-02-21
      • 2019-02-06
      • 1970-01-01
      相关资源
      最近更新 更多