Organisez les données séparées par dossier avec Python

En 3 lignes

Obtenez une liste de noms de dossier

Version standard (OK dans l'environnement standard)

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

Une manière plus cool (les expressions régulières peuvent être utilisées)

Windows


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

Mac


dir = glob.glob("*/")

Exemple d'utilisation d'expression régulière

Exemple de recherche de dossiers case01, case02, ...

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

Si vous souhaitez obtenir uniquement le fichier texte (.txt).

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

Exécuter le programme de traitement pour chaque dossier

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)

Traitez les données texte organisées par dossier avec les pandas

Les données sont au format tabulation (.tsv), en supposant les colonnes d'index et les colonnes de données de gauche. スクリーンショット 2019-11-23 13.42.09.png

La lecture des données peut être gérée par try: car le programme de traitement ci-dessus peut échouer. Le dossier d'erreur doit être généré. Il est pratique de préparer l'index en traitant ultérieurement le nom du dossier.

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

Vérifions les données. (Pourquoi il y a une ligne "0", mais je m'en fiche car elle disparaîtra plus tard)

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

Quelque chose fait avec les pandas

Tout d'abord, il est plus facile à gérer en permutant les lignes et les colonnes.

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

Premièrement, le traitement des données manquantes (NaN).

dfsT = dfsT.dropna()

De manière appropriée d'ici.

Par exemple, utilisez un index sophistiqué pour traiter les données conditionnelles. (Ici, un exemple dans lequel la colonne WSA / L2 génère des données de 0,2 ou plus)

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

Visualisation avec 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

Réglage de l'axe horizontal

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

Utilisation dans Excel (sortie)

Beaucoup de gens me demandent d'utiliser Excel pour les données, je vais donc vous les donner.

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

Si le format de texte est acceptable, par exemple:

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

Recommended Posts

Organisez les données séparées par dossier avec Python
Analyse de données avec python 2
Analyse de données avec Python
Exemple de données créées avec python
Obtenez des données Youtube avec python
Synchronisation facile des dossiers avec Python
Lire des données json avec python
[Python] Obtenez des données économiques avec DataReader
Structure de données Python apprise avec la chimioinfomatique
Visualisez facilement vos données avec Python seaborn.
Traiter les données Pubmed .xml avec python
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
J'ai ajouté Maki Horikita et Kanna Hashimoto et divisé par 2 avec python
Obtenez des informations sur la propriété en grattant avec python
Construction de pipeline de données avec Python et Luigi
Recevoir des données textuelles de mysql avec python
[Note] Obtenir des données de PostgreSQL avec Python
Traiter les données Pubmed .xml avec python [Partie 2]
Obtenez des données alimentaires avec l'API Amazon (Python)
Enregistrer la vidéo image par image avec Python OpenCV
Essayez de travailler avec des données binaires en Python
Convertir des données Excel en JSON avec python
Téléchargez les données de cours des actions japonaises avec Python
Manipulation des données DynamoDB avec Lambda (Node et Python)
Convertissez des données FX 1 minute en données 5 minutes avec Python
Recommandation d'Altair! Visualisation des données avec Python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Faisons la manipulation des données MySQL avec Python
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Traitez le Big Data avec Dataflow (ApacheBeam) + Python3
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
FizzBuzz en Python3
Classement des numéros de stock par balise Qiita avec python
Grattage avec Python
[Python] Récupérez les fichiers dans le dossier avec Python
Créez des données de test comme ça avec Python (partie 1)
Statistiques avec python
Lire les données avec python / netCDF> nc.variables [] / Vérifier la taille des données
Grattage avec Python
Python avec Go
Analyse de données python
Twilio avec Python
Lire les données de la table dans un fichier PDF avec Python
Intégrer avec Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
Une histoire sur la gestion des données binaires en Python
python commence par ()
Folium: Visualisez les données sur une carte avec Python
avec syntaxe (Python)
[Calcul scientifique / technique par Python] Tracer, visualiser, matplotlib des données 2D avec barre d'erreur
Zundokokiyoshi avec python
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
Lire ligne par ligne à partir d'un fichier avec Python
Machine Learning avec docker (40) avec anaconda (40) "Hands-On Data Science and Python Machine Learning" Par Frank Kane