我想知道是否可以合并多个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行开始串联,并在第一列中添加文件名,但不确定如何实现
答案 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 ])