首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python以串行方式将多个csv组合成一个文件?

如何使用python以串行方式将多个csv组合成一个文件?
EN

Stack Overflow用户
提问于 2018-02-08 04:58:48
回答 1查看 837关注 0票数 3

我试图将多个CSV文件合并为一个CSV文件。

CSV文件就像

代码语言:javascript
复制
 Energy_and_Power_Day1.csv,     
 Energy_and_Power_Day2.csv, 
 Energy_and_Power_Day3.csv,      
  ....................., 
 Energy_and_Power_Day31.csv

我使用了一个小python脚本来连接多个CSV脚本,file.The脚本正在做它的工作,但它不是以串行方式连接文件。应该是Energy_and_Power_Day1.csv然后是Energy_and_Power_Day2.csv然后是Energy_and_Power_Day3.csv就像这样。但这不是随机的,不是连续的。这是我的密码

代码语言:javascript
复制
import pandas as pd
import csv
import glob
import os

os.chdir("/home/mayukh/Downloads/Northam_bill_data")
results = pd.DataFrame([])
filelist = glob.glob("Energy_and_Power_Day*.csv")
#dfList=[]
for filename in filelist:
  print(filename)  
  namedf = pd.read_csv(filename, skiprows=0, index_col=0)
  results = results.append(namedf)

results.to_csv('Combinefile.csv')

脚本提供来自print(filename)的输出,并以这种方式组合这些csv文件。

代码语言:javascript
复制
Energy_and_Power_Day1.csv
Energy_and_Power_Day16.csv
Energy_and_Power_Day23.csv
Energy_and_Power_Day22.csv
Energy_and_Power_Day11.csv
Energy_and_Power_Day21.csv
Energy_and_Power_Day31.csv
Energy_and_Power_Day17.csv
Energy_and_Power_Day25.csv
Energy_and_Power_Day28.csv
Energy_and_Power_Day9.csv
Energy_and_Power_Day19.csv
Energy_and_Power_Day7.csv
Energy_and_Power_Day15.csv
Energy_and_Power_Day20.csv
Energy_and_Power_Day24.csv
Energy_and_Power_Day4.csv
Energy_and_Power_Day6.csv
Energy_and_Power_Day14.csv
Energy_and_Power_Day13.csv
Energy_and_Power_Day27.csv
Energy_and_Power_Day3.csv
Energy_and_Power_Day18.csv
Energy_and_Power_Day8.csv
Energy_and_Power_Day30.csv
Energy_and_Power_Day12.csv
Energy_and_Power_Day29.csv
Energy_and_Power_Day10.csv
Energy_and_Power_Day5.csv
Energy_and_Power_Day2.csv
Energy_and_Power_Day26.csv

我的问题是,如何或以何种方式串行地组合这些CSV文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 05:10:43

它不是“随机的”(这取决于这些文件是如何由底层文件系统( @tripleee)组织的)。

在打开文件之前,可以对文件名进行排序。使用带有list.sort参数的key。在此之后,您可以使用列表理解,并将数据格式列表传递给pd.concat。它应该比DataFrame.append更有效。

代码语言:javascript
复制
import re

filelist = glob.glob("Energy_and_Power_Day*.csv")
filelist.sort(key=lambda x: int(re.search('\d+', x).group()))

df = pd.concat([
        pd.read_csv(f, skiprows=0, index_col=0) for f in filelist
     ],
     axis=0
)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48677856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档