【问题标题】:Python read 100+ CSV files and return sum of a column from each CSV file into a new csvPython 读取 100 多个 CSV 文件并将每个 CSV 文件中列的总和返回到新的 csv
【发布时间】:2021-03-12 15:34:45
【问题描述】:

我在同一个文件夹中有 100 多个 CSV 文件。我正在尝试读取所有没有任何序列格式的文件,除了所有文件都以“AB_”开头。我不希望连接所有这些文件,因为这些文件最初来自使用 Python 按 ID 拆分的巨大文件。我正在尝试验证所有这些文件的总和是否正确。 这些文件的格式如下:

ID   country   amount

1234   Malaysia    30

1234   Malaysia    80

....

所有文件都有不同的行数,ID 列只有 1 个不同的 ID。我希望创建一个 CSV 文件,通过如下输出来总结所有这些 CSV 文件(每行显示文件夹中每个 CSV 文件的摘要):

ID   sum_amount

1234 110

2345 88

...

请帮忙!谢谢!

【问题讨论】:

    标签: python csv


    【解决方案1】:

    我正在尝试读取所有没有任何序列格式的文件,除了所有以“AB_”开头的文件。

    pathlib 可以帮助您生成此文件列表。

    获得文件名列表后,解决此问题的一个简单方法是open 每个文件,逐行遍历,然后将sum_amount 累积到ID。您可以使用字典将总数 sum_amount 存储到 ID 为止。一旦字典完成(即您遍历了所有文件),您将其写入输出文件(您可以使用字典的 items 方法获取可以迭代的键值元组列表)。

    请注意,此问题不需要您按顺序处理任何内容:如果您可以并行遍历文件,则可以计算文件级总计,然后将这些部分总计聚合为结果集的总计。如果您需要经常性地解决这个问题,您可以使用 map-reduce 方法来解决它。

    【讨论】:

      猜你喜欢
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      相关资源
      最近更新 更多