在機器學習中,我們應該少一些“資料清理”,多一些“資料準備”。當我們需要從白皮書、電子書或其他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')
這是一種相對簡單的快速提取資料的方法,可以在將資料匯入機器學習資料庫、Tableau或Count等工具。
許多系統會提供匯出到CSV選項,但是沒有辦法在匯出資料之前先合併資料。這可能會導致5個以上的文件匯出到一個資料夾,這些文件包含相同的資料類型。這個Python腳本透過取得這些檔案)並將它們合併到一個檔案中來解決這個問題。
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.')
最終輸出將為您提供一個 CSV 文件,其中包含您從來源系統匯出的 CSV 清單中的所有資料。
如果您需要從CSV檔案中刪除重複的資料行,這可以幫助您快速執行清理操作。當機器學習資料集中擁有重複資料時,這會直接影響視覺化工具或機器學習專案中的結果。
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')
當從其他系統匯出檔案時,它有時會包含一列數據,而我們需要將其作為兩列。
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')
假設您有一個帳戶清單和與其關聯的訂單,並希望查看訂單歷史記錄以及關聯的帳戶詳細資訊。一個很好的方法就是透過合併資料到一個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')
這些腳本可以有效幫助我們進行自動化清理數據,然後可以將清理後的資料載入到機器學習模型中進行處理。 Pandas是操作資料的首選庫,因為它提供了許多的選項。
#
以上是用於清理資料的五個簡單有效 Python 腳本的詳細內容。更多資訊請關注PHP中文網其他相關文章!