按创建日期顺序合并 csv 文件 Python Pandas

Merging csv files in order of date created Python Pandas

我正在合并 3700 个 csv 文件,总共有 1000 万行。这些文件没有顺序命名,但它们的创建日期(降序)是顺序的。我使用以下代码合并它们,但不知道如何按顺序添加选择它们。

import pandas as pd
import glob

path = r'C:\Users\User\' #  path

all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:

    df = pd.read_csv(filename, index_col=None, header=0)

    li.append(df)

frame = pd.concat(li, axis=0, ignore_index=True)

The following are names of files arranged in date modified(oldest to newest) from the os

V100(1005).csv V100(1).csv V100(778).csv V100(2).csv

文件名没有顺序,因为在下载期间其他文件被删除了。

如果我对问题的理解正确,您需要在循环之前执行此操作(基于答案 here),它按 creation/modification 日期在 Python 3 中对文件列表进行排序:

import os
all_files = sorted(all_files, key=os.path.getmtime)
#all_files = sorted(all_files, key=os.path.getctime) #works too

在 MacOs 上测试:

  • 我创建了 5 个类似于 OP 的文件:

  • 使用glob读取文件

import glob
all_files = glob.glob('V*.csv')
print(all_files)
#['V100-778.csv', 'V100-778-.csv', 'V100-1005-1.csv', 'V100-1.csv', 'V100-2.csv']
  • 正在根据修改时间对文件进行排序:
import os
all_files = sorted(all_files, key=os.path.getmtime)
print(all_files)
#['V100-778-.csv', 'V100-1005-1.csv', 'V100-1.csv', 'V100-778.csv', 'V100-2.csv']