【发布时间】:2022-01-06 17:57:20
【问题描述】:
我有大约 40 个 .csv 文件(范围从大约 100mb 到 600mb),我想将它们连接成一个 .csv 文件。我使用的数据是使用来自 FNMA 的预构建 R 代码构建的,该代码将较大的原始数据文件聚合成更易于管理的格式。但是,当尝试连接数据文件时,我收到以下错误,表明文件之间的字段计数不匹配:“ParserError: Error tokenizing data.C error: Expected 75 fields in line 10, saw 76”。由于文件之间的大多数字段是同质的,我试图从本质上垂直地对数据进行内部连接以解决此问题,但我还没有找到合理的解决方案。我认为只修剪 .R 代码来编写我知道存在的字段可能是有意义的,但我更喜欢使用 Python 的解决方案,因为这些数据需要大量时间来处理并且预构建的代码相当庞大。 我将在下面包含我一直尝试使用的 Python 代码(如果需要,我很乐意分享 .R 代码,但它有 600 多行):
import os
import glob
import pandas as pd
#set working directory
os.chdir("folder directory")
#find all csv files in the folder
#use glob pattern matching -> extension = 'csv'
#save result in list -> all_filenames
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
#print(all_filenames)
#combine all files in the list
combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ], ignore_index=True, sort=False)
#export to csv
combined_csv.to_csv( "FNMA Data Aggregated.csv", index=False, encoding='utf-8-sig')
combined_csv
【问题讨论】:
-
您能分享一些 .csv 文件的结构吗?
-
@cjdeschene,您使用的是什么操作系统?如果您使用的是基于 *NIX 的操作系统,则可以使用
cat或其他命令行工具。 -
@Adirius 每个文件有大约 400,000 多条记录(行)和 74-76 个字段(其中大部分是同质的)。有数字、字符串和日期类型的混合。如果您特别需要其他结构元素,请告诉我,我很乐意分享。
-
@iembry 我正在使用 Windows 10 并通过 pip 运行 Python
标签: python r csv concatenation