从起始行合并多个csv

时间:2019-09-11 20:03:55

标签: python pandas

我想知道是否可以合并多个CSV,但是要从给定的行开始并在第一列中添加文件名。目前,我一直在使用以下代码:

import os

import glob

import pandas as pd

os.chdir(Path)

extension = 'csv'

all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

#combine all files in the list
combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ])
#export to csv
combined_csv.to_csv( "combined.csv", index=False, encoding='utf-8-sig')

现在,我正在处理一些格式不正确的文件,我需要从第3行开始串联,并在第一列中添加文件名,但不确定如何实现

1 个答案:

答案 0 :(得分:1)

(首先,您不需要使用namespace ScheduleWebApp.Controllers { [Route("api/[controller]")] [ApiController] public class StaffHoursWorkedController : Controller { public IActionResult Index() { return View(); } 进行列表理解-无论如何它都会返回一个列表。)

对于仅从第3行开始连接所有文件的请求-这应该非常简单。只需在您的glob.glob命令中添加一个.loc[3:]

read_csv

但是,如果要进行更多修改,则应使用常规的for循环,以可读的方式完成所有操作,然后再合并所有内容,例如:

combined_csv = pd.concat([pd.read_csv(f).loc[3:] for f in all_filenames ])