重新分片许多大型csv文件,使每个分片具有相同的行数

时间:2019-03-31 09:30:15

标签: python pandas

我有很多共享相同列的大型csv文件。问题在于它们每个都有不同的行数,而我需要以这种方式重新分片此数据,即每个分片具有相同的行数。

这可以通过以下方式轻松实现:

num_rows_in_shard = 10**7
data = []
for f in sorted(glob.glob("dir/*.csv")):
    for index, row in pd.read_csv(f, index_col=0, usecols=[...]).iterrows():
        data.append((...))
        if len(data) == num_rows_in_shard:
           # save data into a new csv
           data = []

if len(data):
   # save leftovers
   data = []

但是我不确定这是否是最快的选项,因为遍历数据框并不是在熊猫中做事的最快方法。

这里没有使用熊猫的特殊理由。我在这里使用它只是因为我需要从csv中选择一些特定的列。

0 个答案:

没有答案