Python 如何读取、提取和合并多个大型csv(1G~)?

Python 如何读取、提取和合并多个大型csv(1G~)?,python,csv,pandas,merge,Python,Csv,Pandas,Merge,我有多个巨大的csv(1GB~),如下所示 path = 'C:/Users/csvfiles' sample1.csv A B C 0 a A 0 c C 1 d D sample2.csv A B C 1 e E 0 f G 0 g G 我想得到下面的df A B C 1 d D 1 e E 我想为columnA提取1。 它可能变得容易处理(考虑到内存大小) 在我看来,我应该使用chunksize并进行一些提取,然后合并…(以节省内存大小) 这对我来说很复杂 我可以问一下如何读取和合

我有多个巨大的csv(1GB~),如下所示

path = 'C:/Users/csvfiles'
sample1.csv

A B C
0 a A
0 c C
1 d D
sample2.csv

A B C
1 e E
0 f G
0 g G
我想得到下面的df

A B C
1 d D
1 e E
我想为columnA提取1。 它可能变得容易处理(考虑到内存大小)

在我看来,我应该使用chunksize并进行一些提取,然后合并…(以节省内存大小)

这对我来说很复杂

我可以问一下如何读取和合并巨大的csv吗?(以及如何节省内存)

  • 使用
    glob
    获取文件
  • 使用
    pd.concat
    将它们放在一起
  • 使用
    query
    获取列
    A
    1
代码

pd.concat(
    [pd.read_csv(f) for f in glob('csvs/*')]).query('A == 1')

   A  B  C
2  1  d  D
0  1  e  E
如果要跟踪索引第一级中每行的来源

pd.concat(
    {i: pd.read_csv(f) for i, f in enumerate(glob('csvs/*'))}).query('A == 1')

     A  B  C
0 2  1  d  D
1 0  1  e  E

重要的问题是修改数据帧的速度很慢。 如果您有许多文件(可能需要进行实验),更好的方法是将结果聚合到一个列表中,并最终转换为数据帧

l = []
while df in generate_df():
    l += df[df.A==1].to_dict('records')
big_df = pandas.DateFrame(l)

对不起,我编辑了我的问题!