Maison >développement back-end >Tutoriel Python >Cinq scripts Python simples et efficaces pour nettoyer vos données
Dans l'apprentissage automatique, nous devrions faire moins de « nettoyage des données » et plus de « préparation des données ». Ce script me fait gagner beaucoup de temps lorsque nous devons extraire des données de livres blancs, de livres électroniques ou d'autres documents PDF.
import tabula #获取文件 pdf_filename = input ("Enter the full path and filename: ") # 提取PDF的内容 frame = tabula.read_pdf(pdf_filename,encoding = 'utf-8', pages='all') #根据内容创建CSV文件 frame.to_csv('pdf_conversion.csv')
Il s'agit d'un moyen relativement simple d'extraire rapidement des données avant de les importer dans une base de données d'apprentissage automatique, Tableau ou Count et d'autres outils.
De nombreux systèmes proposent une option d'exportation au format CSV, mais il n'existe aucun moyen de fusionner les données avant de les exporter. Cela peut entraîner l'exportation de plus de 5 fichiers vers un dossier contenant le même type de données. Ce script Python résout ce problème en prenant ces fichiers et en les fusionnant en un seul fichier.
from time import strftime import pandas as pd import glob # 定义包含CSV文件的文件夹的路径 path = input('Please enter the full folder path: ') #确保后面有一个斜杠 if path[:-1] != "/": path = path + "/" #以列表形式获取CSV文件 csv_files = glob.glob(path + '*.csv') #打开每个CSV文件并合并为一个文件 merged_file = pd.concat( [ pd.read_csv(c) for c in csv_files ] ) #创建新文件 merged_file.to_csv(path + 'merged_{}.csv'.format(strftime("%m-%d-%yT%H:%M:%S")), index=False) print('Merge complete.')
La sortie finale vous donnera un fichier CSV contenant toutes les données de la liste CSV que vous avez exportée depuis le système source.
Si vous devez supprimer les lignes de données en double des fichiers CSV, cela peut vous aider à effectuer rapidement des opérations de nettoyage. Lorsque vous avez des données en double dans un ensemble de données d'apprentissage automatique, cela peut avoir un impact direct sur les résultats d'un outil de visualisation ou d'un projet d'apprentissage automatique.
import pandas as pd # 获取文件名 filename = input('filename: ') #定义要检查是否重复的CSV列名 duplicate_header = input('header name: ') #获取文件的内容 file_contents = pd.read_csv(filename) # 删除重复的行 deduplicated_data = file_contents.drop_duplicates(subset=[duplicate_header], keep="last", inplace=True) #创建新文件 deduplicated_data.to_csv('deduplicated_data.csv')
Lors de l'exportation de fichiers à partir d'autres systèmes, il contient parfois une colonne de données alors que nous en avons besoin sous forme de deux colonnes.
import pandas as pd #获取文件名并定义列 filename = input('filename: ') col_to_split = input('column name: ') col_name_one = input('first new column: ') col_name_two = input('second new column: ') #将CSV数据添加到dataframe中 df = pd.read_csv(filename) # 拆分列 df[[col_name_one,col_name_two]] = df[col_to_split].str.split(",", expand=True) #创建新csv文件 df.to_csv('split_data.csv')
Supposons que vous ayez une liste de comptes et de commandes qui leur sont associés et que vous souhaitiez afficher l'historique des commandes ainsi que les détails du compte associé. Une bonne façon de procéder consiste à fusionner les données dans un fichier CSV.
import pandas as pd #获取文件名并定义用户输入 left_filename = input('LEFT filename: ') right_filename = input('RIGHT filename: ') join_type = input('join type (outer, inner, left, right): ') join_column_name = input('column name(i.e. Account_ID): ') #读取文件到dataframes df_left = pd.read_csv(left_filename) df_right = pd.read_csv(right_filename) #加入dataframes joined_data = pd.merge(left = df_left, right = df_right, how = join_type, on = join_column_name) #创建新的csv文件 joined_data.to_csv('joined_data.csv')
Ces scripts peuvent nous aider efficacement à nettoyer automatiquement les données, puis les données nettoyées peuvent être chargées dans le modèle d'apprentissage automatique pour être traitées. Pandas est la bibliothèque de choix pour manipuler des données car elle offre de nombreuses options.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!