2017-03-28 8 views
0

Ich bin ein Anfänger Python und versucht, diese Aufgabe zu lösen: Ich habe mehrere (125) .csv-Dateien (48 Zeilen und 5 Spalten), und versuchen, eine neue Datei, die wird enthält die erste Zeile und die letzte Zeile (in einer Zeile geschrieben) aus jeder .csv-Datei.Neue Datei aus Daten aus mehreren Dateien

+0

Bitte schreiben Sie die genaue Formatierung der Dateien. Es ist wichtig für das Parsen. – 098799

+2

Es gibt viele Unterfragen hier: Wie man die Liste der Dateien erzeugt (vorausgesetzt, Sie geben sie nicht alle von Hand ein); wie man einen csv liest; wie man die erste und letzte Zeile speichert; wie man Reihen kombiniert; und wie man einen csv schreibt. Jeder von ihnen wurde zuvor auf unterschiedliche Weise auf SO angesprochen. Daher empfehle ich Ihnen, Ihr Problem zu lösen, die Dokumente/SO-Fragen zu lesen und einige Dinge selbst auszuprobieren. – DSM

+0

Sie finden alle grundlegenden Informationen in jeder Website wie: https://wiki.python.org/moin/BeginnersGuide dann die letzte Zeile zu nehmen: http://stackoverflow.com/questions/38704949/read-the-last- n-Zeilen-von-a-csv-Datei-in-Python-mit-numpy-Pandas – Dadep

Antwort

0

Um hier anzufangen, können Sie die Liste der Dateien erstellen und sie mit Pandas öffnen. Dadurch wird eine Liste von CSV-Dateien aus einem Verzeichnis generiert, die Liste iteriert und jeweils als CSV Pandas DataFrame geöffnet. Dann erstellt es eine neue Liste der ersten und letzten Zeilen jeder CSV-Datei. Ich bin mir nicht sicher, wie Sie eine Reihe von zwei erstellen möchten, also ist dies hoffentlich ein Ausgangspunkt für Sie.

import os 
import pandas as pd 

#get all files in current directory, or specify the directory in lisdir 
csv_files = [file for file in os.listdir(".")] 

#create dictionary and load all the files as dataframes. 
dataframes = {} 
for x in range(len(csv_files)): 
    dataframes[x] = pd.read_csv(csv_files[x]) 

#get first and last row from each dataframe(loaded csv). 
result_df = pd.DataFrame() 
for item in dataframes: 
    result_df = result_df.append(dataframes[item].iloc[0]) 
    result_df = result_df.append(dataframes[item].iloc[-1]) 

#write to csv file. 
result_df.to_csv("resulting.csv") 
Verwandte Themen