如何将多个 csv 文件合并为一个 csv 文件

Posted

技术标签:

【中文标题】如何将多个 csv 文件合并为一个 csv 文件【英文标题】:How to merge multiple csv files into a single csv files 【发布时间】:2014-05-17 15:29:31 【问题描述】:

我需要将多个 CSV 文件合并到一个 csv 文件中。 我尝试了谷歌搜索并获得了一些关于 CSVWriter 或 SuperCSV 的信息,但我无法辨认。

所有 CSV 文件都将包含相同的列/标题。

为了更好地理解:

我正在从数据库中获取 10,000 条记录,并且正在创建 10 个 csv 文件。 (MyCSV_1-1000.csvMyCSV_1001-2000.csvMyCSV_2001-3000 等等。) 每个 csv 文件包含 1,000 条记录。现在我需要将所有这些 csv 文件合并到第一个 CSV 中,这样MyCSV_1-1000.csv 将包含所有记录,即 1-10,000 条(而在合并之前它只包含 1-1,000 条记录)。

有人可以帮我解决这个问题吗?

我想在 Java 或任何其他支持 Java 的实用程序/框架中执行此操作。

【问题讨论】:

CSV文件只是普通文件,使用普通Java I/O库合并即可。 请看***.com/questions/3307072/… 【参考方案1】:

将多个 csv 文件中的记录合并为一个很简单。如果多个 csv 文件在同一个目录下,您可以从 cmd 执行以下命令。

D:\Files>copy *.csv Merged.csv

这将在同一目录中创建一个 Merged.csv 文件,并将包含来自所有 csv 的记录。

【讨论】:

更多关于解决方案的信息在这里live2tech.com/…【参考方案2】:

可以根据手头的目标/问题来利用编程语言。

假设你需要在合并之前清理数据集,Python 有非常好的库,我建议你使用pandas。

如果数据集具有相同的结构,请创建一个 for 循环来执行以下操作:

• 删除不必要的行

df.drop(df.index[[0,1,2]]) #Removing the first 3 rows

• 转置数据帧

transpose_dataframe = df.transpose()

• 还有更多。

清理过程完成后,对于合并,也可以使用 Python。就我而言,Maverick 的回答生成了一些有趣的字符并且没​​有正确合并,所以我使用了以下内容:

import os
import csv, glob


Dir = r"C:\Users\name\Desktop\DataDirectory"
Avg_Dir = r"C:\Users\name\Desktop\Output"

csv_file_list = glob.glob(os.path.join(Dir, '*.csv'))

print (csv_file_list)

with open(os.path.join(Avg_Dir, 'Output.csv'), 'w', newline='') as f:

    wf = csv.writer(f, lineterminator='\n')
    
    for files in csv_file_list:
        with open(files, 'r') as r:
            next(r) # SKIP HEADERS
            rr = csv.reader(r)
            for row in rr:
                wf.writerow(row)

【讨论】:

以上是关于如何将多个 csv 文件合并为一个 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个csv按行合并?(不是首尾相接的按列合并)

如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?

如何使用 Python Pandas 合并多个 CSV 文件

如何打破大型csv文件,在多个核心上处理它并使用nodeJs将结果合并为一个

将具有不同架构(列)的多个文件 (.csv) 合并/合并为单个文件 .csv - Azure 数据工厂

将多个CSV文件合并为一个