如何传入熊猫迭代器列表作为zip的参数?



我正在阅读五个巨大的CVS文件。所有这些都有相同数量的行,但行的数量为数百万。由于内存限制,我需要分批阅读它们,然后将数据从不同的文件加入单个数据范围。

以下是我现在拥有的:

import pandas as pd
it1 = pd.read_csv('1.csv', chunksize=10)
it2 = pd.read_csv('2.csv', chunksize=10)

it3 it4 it5在列表中给出了list_iterators。那就是:

list_iterators = [it3  it4  it5]

我想实现的是,每当我执行读取操作时,我都会从列表表单中获取所有迭代器的数据。

所以我第一次阅读它们,我将有:

[first 10 rows in 1.csv, first 10 rows in 2.csv, first 10 rows in 3.csv ...  first 10 rows in 5.csv]

为了达到预期的结果,我现在正在做的是:

ak = zip(it1, it2, list_iterators[0], list_iterators[1], list_iterators[2])
ak.__next__() #I will call this to read the next 10 rows

我想知道是否有任何方法可以将list_iterators作为参数传递,而不是拼出其中的所有元素,因为当我编写程序时,我无法知道list_iterators中有多少个元素。

我的第二个问题是,不是使用__next__(),而是一种更优雅的方法来从 pandas 迭代器中检索数据。

我想知道是否有任何方法可以将list_iterators作为参数

传递

是的,您可以使用*操作员通过list_iterators的内容:

ak = zip(it1, it2, *list_iterators)

最新更新