[PYTHON] Lesen Sie alle CSV-Dateien im Ordner

Überblick

Die CSV-Datei kann nach Zeit oder Attribut unterteilt sein, daher habe ich sie implementiert, damit diese Dateien in einer Zeile gelesen werden können. Die gewünschten Funktionen sind wie folgt. -Lesen Sie alle CSV-Dateien im Ordner. -Es ist auch möglich, nur CSV-Dateien mit bestimmten Zeichen als Ziel festzulegen.

Ausführungsumgebung

・ Windows10 64bit ・ Python 3.8.3 ・ Pandas 0.25.3 ・ Seaborn 0.11.0

Implementierung

1. Datenaufbereitung

Teilen Sie die Irisdaten (150 Elemente) in 4 und speichern Sie sie als CSV-Datei ("Haupt" -Ordner direkt unter dem E-Laufwerk). Speichern Sie dieselbe Datei auch im Ordner "sub" im Ordner "main".

import seaborn as sns
data = sns.load_dataset('iris')

import os
os.makedirs(r'E:\main', exist_ok=True)
for i in range(4):
    st = int(0 if i==0 else (len(data)/4)*i)
    en = int((len(data)/4)*(i+1))
    
    data.iloc[st:en].to_csv(r'E:\main\iris{}.csv'.format(i), encoding='cp932', index=False)
    

os.makedirs(r'E:\main\sub', exist_ok=True)
for i in range(4):
    st = int(0 if i==0 else (len(data)/4)*i)
    en = int((len(data)/4)*(i+1))
    
    data.iloc[st:en].to_csv(r'E:\main\sub\iris{}.csv'.format(i+4), encoding='cp932', index=False)

2. Lesen Sie die CSV-Datei

Als Ergebnis habe ich es mit der folgenden Funktion implementiert.

import glob
import pandas as pd
def read_csv(path, encode, sub_check=False, target_name=None):
    #Rufen Sie den Pfad aller CSV-Dateien im Ordner mit der Liste ab
    #sub_check=Wenn True, Zielunterordner
    target_files = glob.glob(path+r'\**\*.csv', recursive=True) if sub_check else glob.glob(path+r'\*.csv')

    #Zum Speichern von Dateien nach dem Zusammenführen
    merged_file = pd.DataFrame()

    #Kombinieren Sie alle Ziel-CSV-Dateien
    for filepath in target_files:
        
        #Wenn der Dateiname nicht die angegebenen Zeichen enthält, wird er ausgeschlossen.
        filename = filepath.split('\\')[-1]
        if target_name!=None and target_name not in filename: continue        
    
        #Lesen Sie eine CSV-Datei
        input_file = pd.read_csv(filepath, encoding=encode, sep=",", engine='python')
        
        #Kombinieren Sie eine CSV-Datei mit der zuvor gelesenen CSV-Datei
        merged_file = pd.concat([merged_file, input_file], axis=0)

    #Setzen Sie den Index des DataFrame nach dem Beitritt zurück
    merged_file = merged_file.reset_index(drop=True)
    
    return merged_file

Funktionsprüfung

1. Lesen Sie die CSV-Datei in einem Ordner

Alle CSV-Dateien (150 Elemente) in einem Ordner konnten gelesen werden. image.png

2. Lesen Sie nur die angegebene Datei mit der CSV-Datei in einem Ordner

Wenn für target_name "1" angegeben wurde, konnten CSV-Dateien (38 Fälle) gelesen werden, deren Name "1" enthält. image.png

3. Lesen Sie Dateien einschließlich niedrigerer Verzeichnisse

Wenn sub_check = True, können alle CSV-Dateien (300 Elemente) einschließlich des Ordners "sub" im unteren Verzeichnis gelesen werden. image.png

Vielen Dank für das Surfen.

Recommended Posts

Lesen Sie alle CSV-Dateien im Ordner
2 Möglichkeiten, alle CSV-Dateien in einem Ordner zu lesen
Batch-Konvertierung aller XLSX-Dateien im Ordner in CSV-Dateien
Lesen von CSV-Dateien mit Pandas
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Konvertieren Sie UTF-8-CSV-Dateien in Excel
So erhalten Sie die Dateien im Ordner [Python]
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
Lesen Sie die Linkliste im CSV-Format mit dem Graph-Tool
[Python] Öffnen Sie die CSV-Datei in dem von Pandas angegebenen Ordner
[R] [Python] Memo zum Lesen mehrerer CSV-Dateien in mehreren Zip-Dateien
Verarbeiten Sie die Dateien im Ordner in der Reihenfolge mit dem Shell-Skript
Komprimieren Sie alle Textdateien unten!
Lesen Sie Dateien parallel zu Python
So kombinieren Sie alle CSVs in einem Ordner zu einer CSV
Lesen und Schreiben von CSV-Dateien mit Numpy
Lesen Sie die Datei Zeile für Zeile mit Python
Ich habe versucht, die verkratzten Daten in CSV zu speichern!
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen und schreiben Sie JSON-Dateien mit Python
Lesen Sie den gesamten Inhalt von proc / [pid]
[Python] Lesen Sie die angegebene Zeile in der Datei
[Python] Kombinieren Sie alle Elemente in einem Array
Erstellen Sie einen Befehl zum Löschen aller temporären Dateien, die in einem bestimmten Ordner generiert wurden
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Greifen Sie auf Dateien im selben Verzeichnis wie die ausführbare Datei zu
Löschen Sie alle pyc-Dateien im angegebenen Verzeichnis
Lesen und Schreiben von CSV- und JSON-Dateien mit Python
Lesen Sie die Ausgabe von subprocess.Popen in Echtzeit
Lesen Sie CSV-Dateien, die in Flask hochgeladen wurden, ohne sie zu speichern
Die Geschichte der Anzeige von Mediendateien in Django
CSV in Python
[Django] CSS im Projekt kann nicht gelesen werden
Python-Skript, das alle UTF-8-Dateien unter dem Ordner mit Stückliste ohne Stückliste erstellt
Entpacken Sie alle Zip-Dateien im aktuellen Verzeichnis
[Python] Benennen Sie alle Bilddateien in einem bestimmten Ordner nach Aufnahmedatum und -zeit um
Abrufen des Dateinamens in einem Ordner mithilfe von glob
[Django] Tabelle abschneiden (alle Tabellendaten löschen)
Legen Sie alle CSV-Dateien in einem beliebigen Verzeichnis in DataFrame ab
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
Lesen von CSVs, die in Python nur Ganzzahlen enthalten
Lesen Sie "Quantencomputer hergestellt in 14 Tagen". der 2. Tag
Lesen Sie DXF mit Python
Lesen Sie die OpenCV-Dokumentation
Lesen Sie die CSV-Datei: pandas
Über __all__ in Python
Lesen Sie die Python-CSV-Datei
[Python] CSV-Dateien lesen
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
Haupteinstellungsdateien, die im LPIC202-Test eingeführt wurden (persönliches Memo)
Benennen Sie Remote-Dateien mithilfe von NcFTP in der Shell um und ersetzen Sie sie
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Ruft alle IP-Adressen von Instanzen in der Autoscaling-Gruppe ab
Konvertieren Sie nur den Serienwert des Datums in der CSV-Datei mit awk
Ein Befehl zum Auflisten aller Dateien in der Reihenfolge des Dateinamens