按创建日期顺序合并 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']
我正在合并 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']