Rumah > Artikel > pembangunan bahagian belakang > Lima skrip Python yang mudah dan berkesan untuk membersihkan data anda
Dalam pembelajaran mesin, kita harus kurang melakukan "pembersihan data" dan lebih banyak "penyediaan data". Skrip ini menjimatkan banyak masa saya apabila kita perlu mengikis data daripada kertas putih, e-buku atau dokumen PDF lain.
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')
Ini ialah kaedah yang agak mudah untuk mengekstrak data dengan cepat sebelum mengimport data ke dalam pangkalan data pembelajaran mesin, Tableau atau Count dan alatan lain.
Banyak sistem akan menawarkan pilihan eksport ke CSV, tetapi tiada cara untuk menggabungkan data dahulu sebelum mengeksportnya. Ini mungkin menyebabkan lebih daripada 5 fail dieksport ke folder yang mengandungi jenis data yang sama. Skrip Python ini menyelesaikan masalah ini dengan mengambil fail ini) dan menggabungkannya ke dalam satu fail.
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.')
Output akhir akan memberi anda fail CSV yang mengandungi semua data dalam senarai CSV yang anda eksport daripada sistem sumber.
Jika anda perlu mengalih keluar baris data pendua daripada fail CSV, ini boleh membantu anda melaksanakan operasi pembersihan dengan cepat. Apabila set data pembelajaran mesin mempunyai data pendua, ini boleh memberi kesan secara langsung kepada hasil dalam alat visualisasi atau projek pembelajaran mesin.
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')
Apabila mengeksport fail daripada sistem lain, kadangkala ia mengandungi satu lajur data dan kami memerlukannya sebagai dua lajur.
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')
Andaikan anda mempunyai senarai akaun dan pesanan yang dikaitkan dengannya dan ingin melihat sejarah pesanan bersama butiran akaun yang berkaitan. Cara yang baik untuk melakukan ini ialah dengan menggabungkan data ke dalam fail 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')
Skrip ini boleh membantu kami membersihkan data secara automatik dan kemudian memuatkan data yang telah dibersihkan ke dalam model pembelajaran mesin untuk diproses. Pandas ialah perpustakaan pilihan untuk memanipulasi data kerana ia menawarkan begitu banyak pilihan.
Atas ialah kandungan terperinci Lima skrip Python yang mudah dan berkesan untuk membersihkan data anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!