Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Concat数据帧与pandas在文件中_Python_Pandas_Concatenation - Fatal编程技术网

Python Concat数据帧与pandas在文件中

Python Concat数据帧与pandas在文件中,python,pandas,concatenation,Python,Pandas,Concatenation,数据文件对于RAM来说太大了,所以我不能使用.read\u csv()->concat->.to\u csv()。有没有一个简单的选择来连接两个数据帧?我有一个想法,从每个csv文件中读取一批n行(在RAM限制内),然后将其写入/附加到一个新的csv文件中。请注意,所有文件必须具有相同的列架构 下面的代码似乎适用于我的小csv文件。你可以试试大批量的,大批量的,如果可以的话请告诉我 filenames = ['file1.csv', 'file2.csv', 'file3.csv'] batch

数据文件对于RAM来说太大了,所以我不能使用
.read\u csv()->concat->.to\u csv()
。有没有一个简单的选择来连接两个数据帧?

我有一个想法,从每个csv文件中读取一批n行(在RAM限制内),然后将其写入/附加到一个新的csv文件中。请注意,所有文件必须具有相同的列架构

下面的代码似乎适用于我的小csv文件。你可以试试大批量的,大批量的,如果可以的话请告诉我

filenames = ['file1.csv', 'file2.csv', 'file3.csv']
batch_size = 2
df = pd.read_csv(filenames[0], nrows=0)
df.to_csv('new.csv', index=False)   #save the header

for filename in filenames:
    this_batch = batch_size
    i = 0
    while this_batch == batch_size:
        df = pd.read_csv(filename, nrows=batch_size, skiprows=batch_size*i)
        this_batch = len(df)
        i += 1
        df.to_csv('new.csv', mode='a', index=False, header=None)

你考虑过使用发电机吗?read_csv()具有类似于
迭代器
chunksize
的参数,用于帮助读取大文件。检查输出如果您只需要附加文件,您可以读取单个文件并使用
mode=“a”
for
将它们全部附加到\u csv
如果您的数据集超出内存,您应该尝试使用这一方法,它允许您使用大型数据集进行数据处理,这两种方法都适用于python库,如NumPy、scikit LERN、,等。更多信息: