我的数据集查看了2009年至2018年的航班延误和取消情况。以下是需要考虑的要点:
- 每年都有自己的csv文件,所以'2009.csv', '2010.csv',一直到'2018.csv' 每个文件大约700mb
- 我使用以下代码组合csv文件
import pandas as pd
import numpy as np
import os, sys
import glob
os.chdir('c:\folder'
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
combined_airline_csv = pd.concat([pd.read_csv(f) for f in all_filenames])
combined_airline_csv.to_csv('combined_airline_csv.csv', index =False, encoding = 'utf-8-sig')
- 当我运行这个时,我收到以下消息: 内存错误:无法为形状为(5674621,),数据类型为float64的数组分配43.3MiB .
我假设我的文件太大,需要在虚拟机(即AWS)上运行它。
有什么想法吗?
谢谢!
这是如何在Python中合并200个csv文件的副本。
由于您只想将它们合并到一个文件中,因此不需要同时将所有数据加载到数据框架中。由于它们都具有相同的结构,我建议创建一个文件写入器,然后使用文件读取器打开每个文件,并逐行写入数据(如果我们想要更花哨,让我们称之为流)。只是要注意不要每次都复制头文件,因为您只需要它们一次。Pandas根本不是完成这项任务的最佳工具:)
一般来说,这是一个典型的任务,直接在命令行上也可以很容易甚至更快地完成。(代码取决于操作系统)