Ausgabe
Ich möchte aus über 100 CSV-Dateien eine bestimmte Spalte auslesen, um eine neue CSV-Datei zu erstellen. Die Kopfzeile der Quellspalte wird in den Dateinamen umbenannt, aus dem die Spalte extrahiert wurde.
Ich kann die einzelnen Spalten abrufen, aber ich konnte die Kopfzeile jeder Spalte ohne die Erweiterung „.csv“ nicht umbenennen:
import os
import pandas as pd
folder = "C:/Users/Doc/Data"
files = os.scandir(folder)
E2080 = []
with os.scandir(folder) as files:
for file in files:
#print(file)
df = pd.read_csv(file, index_col=None)
dist = {file: (df['lnt_dist'])}
E = pd.DataFrame(dist)
E2080.append(E)
dist = pd.concat(E2080, ignore_index=False, axis=1)
dist.head()
dist.to_csv('E2080', index=False)
Lösung
Dies ist der letzte Code, der für mich funktioniert hat (siehe Ausgabe 1 ):
E2080 = []
with os.scandir(folder) as files:
for file in files:
#print(file)
df = pd.read_csv(file, index_col=None)
dist = {file: (df['lnt_dist'])}
E = pd.DataFrame(dist)
E_1 = E.rename(columns={file: file.name.split('.')[0]}) # rename df header while dropping the ext **[.csv]** and the `os.scandir` attribute `<DirEntry>`
E2080.append(E_1)
dist = pd.concat(E_28, ignore_index=False, axis=1)
#dist.head()
dist.to_csv('E2080.csv', index=False)
Beantwortet von – onia106
Antwort geprüft von – David Marino (FixError Volunteer)