2017-01-25 2 views
3

Mein Python-Code funktioniert im folgenden Beispiel korrekt. Mein Code kombiniert ein Verzeichnis von CSV-Dateien und stimmt mit den Headern überein. Ich möchte jedoch noch einen Schritt weiter gehen - wie füge ich eine Spalte hinzu, die den Dateinamen der verwendeten CSV anfügt?Python Pandas hinzufügen Dateiname Spalte CSV

import pandas as pd 
import glob 

globbed_files = glob.glob("*.csv") #creates a list of all csv files 

data = [] # pd.concat takes a list of dataframes as an agrument 
for csv in globbed_files: 
    frame = pd.read_csv(csv) 
    data.append(frame) 

bigframe = pd.concat(data, ignore_index=True) #dont want pandas to try an align row indexes 
bigframe.to_csv("Pandas_output2.csv") 

Antwort

7

sollte diese Arbeit:

import os 

for csv in globbed_files: 
    frame = pd.read_csv(csv) 
    frame['filename'] = os.path.basename(csv) 
    data.append(frame) 

frame['filename'] erstellt eine neue Spalte mit dem Namen filename und os.path.basename()c.txt einen Pfad wie /a/d/c.txt in den Dateinamen verwandelt.

+0

Ehrfürchtig. Ich wusste, es war einfach! Vielen Dank – specmer

Verwandte Themen