如何将多个 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.csv
、MyCSV_1001-2000.csv
、MyCSV_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 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?
如何使用 Python Pandas 合并多个 CSV 文件
如何打破大型csv文件,在多个核心上处理它并使用nodeJs将结果合并为一个