簡體   English   中英

如何使用python以串行方式將多個csv合並到一個文件中?

[英]How to combine multiple csv into one file in serial manner using python?

我正在嘗試將多個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文件。腳本正在執行它的工作,但它不是以串行方式連接文件。 應該采取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文件?

這不是“隨機的”(這取決於基礎文件系統–tripleee如何組織這些文件)。

您可以在打開文件之前對文件名進行排序。 list.sortkey參數一起使用。 之后,您可以使用列表pd.concat ,並將數據幀列表傳遞給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
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM