首頁  >  文章  >  後端開發  >  用於清理資料的五個簡單有效 Python 腳本

用於清理資料的五個簡單有效 Python 腳本

WBOY
WBOY轉載
2023-04-12 18:31:071525瀏覽

將 PDF 轉換為 CSV

用於清理資料的五個簡單有效 Python 腳本

在機器學習中,我們應該少一些“資料清理”,多一些“資料準備”。當我們需要從白皮書、電子書或其他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 檔案

許多系統會提供匯出到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 檔案中刪除重複的行

如果您需要從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')

拆分 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中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除