Organisieren Sie mit Python nach Ordnern getrennte Daten

In 3 Zeilen

Holen Sie sich eine Liste der Ordnernamen

Standardversion (OK in Standardumgebung)

import os
dir = [d for d in os.listdir(".") if os.path.isdir(d)]

Ein cooler Weg (reguläre Ausdrücke können verwendet werden)

Windows


import glob
dir = glob.glob(os.path.join("*",""))

Mac


dir = glob.glob("*/")

Beispiel für die Verwendung regulärer Ausdrücke

Beispiel für die Suche nach Ordnern case01, case02, ...

dir = glob.glob(os.path.join("case*",""))

Wenn Sie nur die Textdatei (.txt) erhalten möchten.

dir = glob.glob("*.txt")

Führen Sie das Verarbeitungsprogramm für jeden Ordner aus

import shutil
import subprocess

for f in dir:
    
    # copy files from local folder to target folder
    cp_files=["Addup_win.py","y.input"]
    for fi in cp_files:
        shutil.copy(fi,f)
        
    # remove files at target folder    
    rm_files=['y.out','out.tsv']
    for fi in rm_files:
        if os.path.exists(os.path.join(f,fi)):
            os.remove(os.path.join(f,fi))
            
    subprocess.Popen(["python","Addup_win.py"],cwd=f)

Verarbeiten Sie nach Ordnern geordnete Textdaten mit Pandas

Die Daten haben das Registerkartenformat (.tsv), wobei Indexspalten und Datenspalten von links angenommen werden. スクリーンショット 2019-11-23 13.42.09.png

Das Lesen von Daten kann durch Versuch erfolgen, da das obige Verarbeitungsprogramm möglicherweise fehlschlägt. Der Fehlerordner muss ausgegeben werden. Es ist praktisch, den Index vorzubereiten, indem Sie ihn später anhand des Ordnernamens verarbeiten.

import pandas as pd

dfs=pd.DataFrame()

for f in dir:
    # case01\\ => case01
    index_name = os.path.split(f)[0]
    
    # Error handle
    try:
        # Data structure {col.0 : index, col.1 : Data}
        df = pd.read_csv(os.path.join(f,"out.tsv"),sep='\t',header=None,index_col=0)
        dfs[index_name]=df.iloc[:,0]
    except:
        print("Error in {0}".foramt(index_name))
        
# make index
dfs.index = df.index

Lassen Sie uns die Daten überprüfen. (Warum gibt es eine "0" -Zeile, aber es ist mir egal, weil sie später verschwindet)

dfs.head()
スクリーンショット 2019-11-23 15.12.25.png

Etwas mit Pandas gemacht

Erstens ist die Handhabung durch Vertauschen der Zeilen und Spalten einfacher.

dfsT = dfs.T
スクリーンショット 2019-11-23 15.12.47.png

Erstens die Verarbeitung fehlender Daten (NaN).

dfsT = dfsT.dropna()

Passend von hier.

Verwenden Sie beispielsweise einen ausgefallenen Index, um bedingte Daten zu verarbeiten. (Hier ein Beispiel, in dem die WSA / L2-Spalte Daten von 0,2 oder mehr ausgibt.)

dfsT_select = dfsT[dfsT["WSA/L2"] > 0.2]

Visualisierung mit matplotlib

import matplotlib.pyplot as plt

plt.bar(range(len(dfsT)),dfsT["WSA/L2"], \
        tick_label=dfsT.index)
plt.show()
スクリーンショット 2019-11-23 14.58.15.png

Einstellung der horizontalen Achse

fig, ax = plt.subplots()
ax.bar(range(len(dfsT)),dfsT["WSA/L2"], \
        tick_label=dfsT.index)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, fontsize=10);
スクリーンショット 2019-11-23 14.58.24.png

Verwendung in Excel (Ausgabe)

Viele Leute bitten mich, Excel für die Daten zu verwenden, deshalb gebe ich es Ihnen.

dfs.to_excel("addup.xlsx")
スクリーンショット 2019-11-23 15.15.33.png

Wenn das Textformat akzeptabel ist, zum Beispiel:

dfs.to_csv("addup.tsv",sep='\t')

Recommended Posts

Organisieren Sie mit Python nach Ordnern getrennte Daten
Datenanalyse mit Python 2
Datenanalyse mit Python
Mit Python erstellte Beispieldaten
Holen Sie sich Youtube-Daten mit Python
Einfache Ordnersynchronisation mit Python
Lesen von JSON-Daten mit Python
[Python] Mit DataReader Wirtschaftsdaten abrufen
Python-Datenstruktur mit Chemoinfomatik gelernt
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Verarbeiten Sie Pubmed .xml-Daten mit Python
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Anwendung von Python: Datenbereinigung Teil 2: Datenbereinigung mit DataFrame
Ich habe Maki Horikita und Kanna Hashimoto hinzugefügt und durch 2 durch Python geteilt
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
Datenpipeline-Aufbau mit Python und Luigi
Empfangen Sie Textdaten von MySQL mit Python
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Verarbeiten Sie Pubmed .xml-Daten mit Python [Teil 2]
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
Speichern Sie Videos Frame für Frame mit Python OpenCV
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Konvertieren Sie Excel-Daten mit Python in JSON
Laden Sie japanische Aktienkursdaten mit Python herunter
Bearbeiten von DynamoDB-Daten mit Lambda (Node & Python)
Empfehlung von Altair! Datenvisualisierung mit Python
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
Lassen Sie uns MySQL-Daten mit Python bearbeiten
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Verarbeiten Sie Big Data mit Dataflow (ApacheBeam) + Python3
Ein Memo, das durch Umbenennen der Dateinamen im Ordner mit Python organisiert wird
FizzBuzz in Python3
Stock Number Ranking von Qiita Tag mit Python
Scraping mit Python
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Erstellen Sie solche Testdaten mit Python (Teil 1)
Statistik mit Python
Lesen Sie Daten mit python / netCDF> nc.variables [] / Überprüfen Sie die Datengröße
Scraping mit Python
Python mit Go
Datenanalyse Python
Twilio mit Python
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
In Python integrieren
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Eine Geschichte über den Umgang mit Binärdaten in Python
Python beginnt mit ()
Folium: Visualisieren Sie Daten auf einer Karte mit Python
mit Syntax (Python)
[Wissenschaftlich-technische Berechnung mit Python] Zeichnen, visualisieren, matplotlib 2D-Daten mit Fehlerleiste
Zundokokiyoshi mit Python
Ich habe mit der maschinellen Vorverarbeitung von Python Data begonnen
Lesen Sie mit Python Zeile für Zeile aus der Datei
Maschinelles Lernen mit Docker (40) mit Anaconda (40) "Hands-On Data Science und Python Machine Learning" von Frank Kane