Traitement automatisé d'entrée / sortie et de conversion CSV créé par vous-même Je n'ai pas vu le matériel en un seul endroit, c'est donc un mémorandum.
Appel à la bibliothèque
import csv
import pandas as pd
import numpy as np
import os
import glob
from pathlib import Path
Les fichiers Shift-JIS / sjis de chaque dossier sont convertis en UTF-8 en même temps et sortis dans un autre dossier.
###################################################
#Fichiers UTF de Shift JIS dans un dossier spécifique-Convertir en 8
#Lisez le contenu du dossier in et laissez l'original
#Enregistrer dans le dossier
print("Shift JIS to UTF-8 Start!")
p = Path("./in")
files = list (p.glob("*.csv"))
for file in files:
shift_jis_file = pd.read_csv(file,encoding='Shift_JISx0213')
file_path = f'out/{file.name}'
shift_jis_file.to_csv(file_path)
print("Shift JIS to UTF-8 End!")
###################################################
Lire le nom du fichier à traiter (Cette fois, listez les noms de fichiers que vous souhaitez traiter dans filelist.csv)
#Lisez la liste des fichiers que vous souhaitez traiter
#(Seul le nom du fichier est répertorié dans une colonne)
filelist = pd.read_csv('./filelist.csv')
#Traitement en boucle pour chaque fichier
for index, row in filelist.iterrows():
#Lire le nom du fichier à traiter ligne par ligne
a_list=str(row.values)
#Définition du chemin d'entrée / sortie: lecture du nom du fichier entre parenthèses, stockage variable sans apostrophie, nom du dossier et jointure
inputpath=str('./out/'+a_list)
inputpath=inputpath.replace("'", '')
inputpath=inputpath.replace('[', '')
inputpath=inputpath.replace(']', '')
#Définition du chemin d'entrée / sortie: lecture du nom du fichier entre parenthèses, stockage variable sans apostrophie, nom du dossier et jointure
outputfolder=str('./converted/')
outputpath=str('./converted/'+a_list)
outputpath=outputpath.replace("'", '')
outputpath=outputpath.replace('[', '')
outputpath=outputpath.replace(']', '')
#Définition du chemin d'entrée / sortie: lecture du nom du fichier entre parenthèses, stockage variable sans apostrophie, nom du dossier et jointure
mergedpath=str('./merged/tsestockdata.csv')
mergedpath=mergedpath.replace("'", '')
mergedpath=mergedpath.replace('[', '')
mergedpath=mergedpath.replace(']', '')
Fichier de données brutes réel (traitement du fichier converti en UTF-8), Opérations d'ajout de colonnes telles que la suppression des lignes inutiles et l'ajout de chaînes de caractères spécifiques en même temps
#Lire le fichier
df = pd.read_csv(inputpath, header=None)
#Extraire une valeur spécifique et ajouter la valeur extraite à la dernière colonne de la colonne
tradingdate=inputpath[-14:-4]
df['TradingDate']=tradingdate
##########Supprimer les lignes inutiles, renommer les colonnes
df.columns = df.iloc[0]
df = df.reindex(df.index.drop(0)).reset_index(drop=True)
df = df.reindex(df.index.drop(0)).reset_index(drop=True)
df.columns.name = None
df.columns = ['Rank', 'Code', 'Market','Company','EndingPrice','PriceChange','PercentChange','Volume','TradingDate']
Exportation individuelle de csv
##########Processus d'exportation CSV pour supprimer les lignes inutiles et renommer les noms de colonne
df.to_csv(path_or_buf=outputpath, sep=',', na_rep='', float_format=None, columns=None, header=True,
index=True, index_label=None, mode='w', encoding=None, compression=None, quoting=None,
quotechar='"', line_terminator='\n', chunksize=None, date_format=None,
doublequote=True, escapechar=None, decimal='.')
print("Convert File Processed:"+a_list)
Fusionner les fichiers csv (car il est plus facile d'appeler un fichier agrégé BI)
##########Fusionner tous les fichiers csv dans un dossier spécifique
DATA_PATH = outputfolder
All_Files = glob.glob('{}*.csv'.format(DATA_PATH))
list2 = []
for file in All_Files:
list2.append(pd.read_csv(file))
df = pd.concat(list2, sort=False)
df.to_csv(mergedpath, encoding='utf_8')
print("Merge Process End!!")
##########
Recommended Posts