五個(gè)簡單有效的Python清理數(shù)據(jù)腳本分享_第1頁
五個(gè)簡單有效的Python清理數(shù)據(jù)腳本分享_第2頁
五個(gè)簡單有效的Python清理數(shù)據(jù)腳本分享_第3頁
五個(gè)簡單有效的Python清理數(shù)據(jù)腳本分享_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第五個(gè)簡單有效的Python清理數(shù)據(jù)腳本分享目錄將PDF轉(zhuǎn)換為CSV合并CSV文件從CSV文件中刪除重復(fù)的行拆分CSV列合并不同的數(shù)據(jù)集最后

將PDF轉(zhuǎn)換為CSV

在機(jī)器學(xué)習(xí)中,我們應(yīng)該少一些數(shù)據(jù)清理,多一些數(shù)據(jù)準(zhǔn)備。當(dāng)我們需要從白皮書、電子書或其他PDF文檔中抓取數(shù)據(jù)時(shí),這個(gè)腳本為我節(jié)省了很多時(shí)間。

importtabula

#獲取文件

pdf_filename=input("Enterthefullpathandfilename:")

#提取PDF的內(nèi)容

frame=tabula.read_pdf(pdf_filename,encoding='utf-8',pages='all')

#根據(jù)內(nèi)容創(chuàng)建CSV文件

frame.to_csv('pdf_conversion.csv')

這是一種相對簡單的快速提取數(shù)據(jù)的方法,可以在將數(shù)據(jù)導(dǎo)入機(jī)器學(xué)習(xí)數(shù)據(jù)庫、Tableau或Count等工具。

合并CSV文件

許多系統(tǒng)會(huì)提供導(dǎo)出到CSV選項(xiàng),但是沒有辦法在導(dǎo)出數(shù)據(jù)之前首先合并數(shù)據(jù)。這可能導(dǎo)致5個(gè)以上的文件導(dǎo)出到一個(gè)文件夾,這些文件包含相同的數(shù)據(jù)類型。該P(yáng)ython腳本通過獲取這些文件)并將它們合并到一個(gè)文件中來解決這個(gè)問題。

fromtimeimportstrftime

importpandasaspd

importglob

#定義包含CSV文件的文件夾的路徑

path=input('Pleaseenterthefullfolderpath:')

#確保后面有一個(gè)斜杠

ifpath[:-1]!="/":

path=path+"/"

#以列表形式獲取CSV文件

csv_files=glob.glob(path+'*.csv')

#打開每個(gè)CSV文件并合并為一個(gè)文件

merged_file=pd.concat([pd.read_csv(c)forcincsv_files])

#創(chuàng)建新文件

merged_file.to_csv(path+'merged_{}.csv'.format(strftime("%m-%d-%yT%H:%M:%S")),index=False)

print('Mergecomplete.')

最終輸出將為您提供一個(gè)CSV文件,其中包含您從源系統(tǒng)導(dǎo)出的CSV列表中的所有數(shù)據(jù)。

從CSV文件中刪除重復(fù)的行

如果您需要從CSV文件中刪除重復(fù)的數(shù)據(jù)行,這可以幫助您快速執(zhí)行清理操作。當(dāng)機(jī)器學(xué)習(xí)數(shù)據(jù)集中擁有重復(fù)數(shù)據(jù)時(shí),這會(huì)直接影響可視化工具或機(jī)器學(xué)習(xí)項(xiàng)目中的結(jié)果。

importpandasaspd

#獲取文件名

filename=input('filename:')

#定義要檢查是否重復(fù)的CSV列名

duplicate_header=input('headername:')

#獲取文件的內(nèi)容

file_contents=pd.read_csv(filename)

#刪除重復(fù)的行

deduplicated_data=file_contents.drop_duplicates(subset=[duplicate_header],keep="last",inplace=True)

#創(chuàng)建新文件

deduplicated_data.to_csv('deduplicated_data.csv')

拆分CSV列

當(dāng)從其他系統(tǒng)導(dǎo)出文件時(shí),它有時(shí)會(huì)包含一列數(shù)據(jù),而我們需要將其作為兩列。

importpandasaspd

#獲取文件名并定義列

filename=input('filename:')

col_to_split=input('columnname:')

col_name_one=input('firstnewcolumn:')

col_name_two=input('secondnewcolumn:')

#將CSV數(shù)據(jù)添加到dataframe中

df=pd.read_csv(filename)

#拆分列

df[[col_name_one,col_name_two]]=df[col_to_split].str.split(",",expand=True)

#創(chuàng)建新csv文件

df.to_csv('split_data.csv')

合并不同的數(shù)據(jù)集

假設(shè)您有一個(gè)帳戶列表和與其關(guān)聯(lián)的訂單,并希望查看訂單歷史以及關(guān)聯(lián)的帳戶詳細(xì)信息。一個(gè)很好的方法就是通過合并數(shù)據(jù)到一個(gè)CSV文件。

importpandasaspd

#獲取文件名并定義用戶輸入

left_filename=input('LEFTfilename:')

right_filename=input('RIGHTfilename:')

join_type=input('jointype(outer,inner,left,right):')

join_column_name=input('columnname(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)

#創(chuàng)建新的csv文件

joined_data.to_csv('joined_data.csv')

最后

這些腳本可以有效

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論