我试图将多个CSV文件合并为一个CSV文件。
CSV文件就像
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就像这样。但这不是随机的,不是连续的。这是我的密码
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文件。
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文件?
发布于 2018-02-08 05:10:43
它不是“随机的”(这取决于这些文件是如何由底层文件系统( @tripleee)组织的)。
在打开文件之前,可以对文件名进行排序。使用带有list.sort参数的key。在此之后,您可以使用列表理解,并将数据格式列表传递给pd.concat。它应该比DataFrame.append更有效。
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
)https://stackoverflow.com/questions/48677856
复制相似问题