[PYTHON] Lire tous les fichiers csv dans le dossier

Aperçu

Le fichier csv peut être divisé par heure ou par attribut, je l'ai donc implémenté pour que ces fichiers puissent être lus sur une seule ligne. Les fonctions souhaitées sont les suivantes. -Lisez tous les fichiers csv dans le dossier. -Il est également possible de cibler uniquement les fichiers csv contenant des caractères spécifiés. -Autoriser les répertoires subordonnés à inclure.

Environnement d'exécution

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

la mise en oeuvre

1. Préparation des données

Divisez les données d'iris (150 éléments) en 4 et enregistrez-les en tant que fichier csv (dossier «principal» directement sous le lecteur E). Enregistrez également le même fichier dans le dossier «sous» du dossier «principal».

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. Lire le fichier csv

En conséquence, je l'ai implémenté avec la fonction suivante.

import glob
import pandas as pd
def read_csv(path, encode, sub_check=False, target_name=None):
    #Obtenez le chemin de tous les fichiers csv dans le dossier avec la liste
    #sub_check=Si True, cible les sous-dossiers
    target_files = glob.glob(path+r'\**\*.csv', recursive=True) if sub_check else glob.glob(path+r'\*.csv')

    #Pour stocker des fichiers après la fusion
    merged_file = pd.DataFrame()

    #Combinez tous les fichiers csv cibles
    for filepath in target_files:
        
        #Si le nom de fichier ne contient pas les caractères spécifiés, il sera exclu.
        filename = filepath.split('\\')[-1]
        if target_name!=None and target_name not in filename: continue        
    
        #Lire un fichier csv
        input_file = pd.read_csv(filepath, encoding=encode, sep=",", engine='python')
        
        #Combinez un fichier csv dans le fichier csv précédemment lu
        merged_file = pd.concat([merged_file, input_file], axis=0)

    #Réinitialiser l'index du DataFrame après avoir rejoint
    merged_file = merged_file.reset_index(drop=True)
    
    return merged_file

Contrôle de fonctionnement

1. Lisez le fichier csv dans un dossier

Tous les fichiers csv (150 éléments) dans un dossier peuvent être lus. image.png

2. Lisez uniquement le fichier spécifié avec le fichier csv dans un dossier

Lorsque "1" était spécifié pour nom_cible, les fichiers csv (38 cas) contenant "1" dans le nom pouvaient être lus. image.png

3. Lire les fichiers, y compris les répertoires inférieurs

Si sub_check = True, tous les fichiers csv (300 éléments), y compris le dossier «sous» dans le répertoire inférieur, peuvent être lus. image.png

Merci pour la navigation.

Recommended Posts

Lire tous les fichiers csv dans le dossier
2 façons de lire tous les fichiers csv dans un dossier
Conversion par lots de tous les fichiers xlsx du dossier en fichiers CSV
Comment lire des fichiers CSV avec Pandas
[Python] Récupérez les fichiers dans le dossier avec Python
Convertir des fichiers CSV UTF-8 pour les lire dans Excel
Comment obtenir les fichiers dans le dossier [Python]
Lisez le fichier csv et affichez-le dans le navigateur
Lire la liste de liens au format csv avec l'outil graphique
[Python] Ouvrez le fichier csv dans le dossier spécifié par pandas
[R] [Python] Memo pour lire plusieurs fichiers csv dans plusieurs fichiers zip
Traitez les fichiers du dossier dans l'ordre avec le script shell
Compressez tous les fichiers texte ci-dessous!
Lire des fichiers en parallèle avec Python
Comment combiner tous les CSV d'un dossier en un seul CSV
Lire et écrire des fichiers csv avec numpy
Lisez le fichier ligne par ligne avec Python
J'ai essayé de sauvegarder les données récupérées au format CSV!
Lisez le fichier ligne par ligne avec Python
Lire et écrire des fichiers JSON avec Python
Lire tout le contenu de proc / [pid]
[Python] Lire la ligne spécifiée dans le fichier
[Python] Combine tous les éléments dans un tableau
Créez une commande pour supprimer tous les fichiers temporaires générés dans un dossier spécifique
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Accéder aux fichiers dans le même répertoire que le fichier exécutable
Supprimer tous les fichiers pyc dans le répertoire spécifié
Lire et écrire des fichiers CSV et JSON avec Python
Lire la sortie du sous-processus, ouvrir en temps réel
Lire les fichiers CSV chargés dans Flask sans les enregistrer
L'histoire de l'affichage des fichiers multimédias dans Django
CSV en Python
[Django] css dans le projet ne peut pas être lu
Script Python qui crée tous les fichiers UTF-8 sous le dossier avec BOM sans BOM
Décompressez tous les fichiers zip dans le répertoire actuel
[Python] Renommez tous les fichiers image dans un dossier spécifique par date et heure de prise de vue
Obtenir le nom de fichier dans un dossier à l'aide de glob
[Django] Perform Truncate Table (supprimer toutes les données de la table)
Déposez tous les fichiers CSV sous n'importe quel répertoire dans DataFrame
[Python] Affiche toutes les combinaisons d'éléments de la liste
Comment lire un csv contenant uniquement des entiers en Python
Lisez "Ordinateur Quantum fabriqué en 14 jours". le 2ème jour
Lire DXF avec python
Lire la documentation OpenCV
Lire le fichier CSV: pandas
À propos de __all__ en python
Lire le fichier csv Python
[Python] Lecture de fichiers CSV
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Principaux fichiers de paramètres introduits dans le test LPIC202 (mémo personnel)
Renommez et remplacez les fichiers distants en utilisant NcFTP dans le shell
Comment obtenir toutes les clés et valeurs du dictionnaire
Résolvez le problème japonais lors de l'utilisation du module CSV en Python.
Obtenir toutes les adresses IP des instances du groupe d'autoscaling
Aussi, quand je regarderai en arrière plus, j'écrirai d'une manière facile à comprendre quelle procédure a été implémentée....
Une commande pour lister tous les fichiers par ordre de nom de fichier