欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

五個(gè)簡(jiǎn)單有效的Python清理數(shù)據(jù)腳本分享

 更新時(shí)間:2022年09月14日 09:13:14   作者:佚名  
通常情況下,在機(jī)器學(xué)習(xí)中的數(shù)據(jù)清理往往是一件令人頭疼的事情,本文整理了一份清單,列出了5個(gè)常用的Python腳本,用于自動(dòng)化數(shù)據(jù)清理,需要的可以參考一下

將 PDF 轉(zhuǎn)換為 CSV

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

import tabula
#獲取文件
pdf_filename = input ("Enter the full path and filename: ")
# 提取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')

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

合并 CSV 文件

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

from time import strftime
import pandas as pd
import glob
# 定義包含CSV文件的文件夾的路徑
path = input('Please enter the full folder path: ')
#確保后面有一個(gè)斜杠
if path[:-1] != "/":
    path = path + "/"
#以列表形式獲取CSV文件
csv_files = glob.glob(path + '*.csv')
#打開(kāi)每個(gè)CSV文件并合并為一個(gè)文件
merged_file = pd.concat( [ pd.read_csv(c) for c in csv_files ] )
#創(chuàng)建新文件
merged_file.to_csv(path + 'merged_{}.csv'.format(strftime("%m-%d-%yT%H:%M:%S")), index=False)
print('Merge complete.')

最終輸出將為您提供一個(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é)果。

import pandas as pd
# 獲取文件名
filename = input('filename: ')
#定義要檢查是否重復(fù)的CSV列名
duplicate_header = input('header name: ')
#獲取文件的內(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ù),而我們需要將其作為兩列。

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

import pandas as pd
#獲取文件名并定義用戶(hù)輸入
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)
#創(chuàng)建新的csv文件
joined_data.to_csv('joined_data.csv')

最后

這些腳本可以有效幫助我們進(jìn)行自動(dòng)化清理數(shù)據(jù),然后可以將清理后的數(shù)據(jù)加載到機(jī)器學(xué)習(xí)模型中進(jìn)行處理。Pandas是操作數(shù)據(jù)的首選庫(kù),因?yàn)樗峁┝嗽S多的選項(xiàng)。

以上就是五個(gè)簡(jiǎn)單有效的Python清理數(shù)據(jù)腳本分享的詳細(xì)內(nèi)容,更多關(guān)于Python清理數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python解析命令行讀取參數(shù)--argparse模塊使用方法

    Python解析命令行讀取參數(shù)--argparse模塊使用方法

    這篇文章主要介紹了Python解析命令行讀取參數(shù)--argparse模塊使用方法,需要的朋友可以參考下
    2018-01-01
  • Python使用OpenCV對(duì)圖像進(jìn)行縮放功能

    Python使用OpenCV對(duì)圖像進(jìn)行縮放功能

    這篇文章主要介紹了Python使用OpenCV對(duì)圖像進(jìn)行縮放功能,文中給大家提到了兩種調(diào)用方式及OpenCV中pryUp和pryDown的用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程(分享)

    Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程(分享)

    下面小編就為大家分享一篇Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用指南

    python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用指南

    這篇文章主要介紹了python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用方法,非常的實(shí)用,有需要的朋友可以參考下
    2014-09-09
  • Python字典get()函數(shù)使用詳解

    Python字典get()函數(shù)使用詳解

    在Python中,字典對(duì)象有一個(gè)名為get()的方法,它可以用來(lái)獲取字典中鍵對(duì)應(yīng)的值,該方法接受一個(gè)鍵作為參數(shù),并返回該鍵對(duì)應(yīng)的值,如果鍵不存在于字典中,則返回None,本文就給大家介紹一下Python get()函數(shù)使用方法,需要的朋友可以參考下
    2023-07-07
  • Python彈球小游戲的項(xiàng)目代碼

    Python彈球小游戲的項(xiàng)目代碼

    本文主要介紹了Python彈球小游戲的項(xiàng)目代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python進(jìn)行debug操作實(shí)戰(zhàn)訓(xùn)練

    python進(jìn)行debug操作實(shí)戰(zhàn)訓(xùn)練

    debug是編碼是非常重要的調(diào)試技巧,通過(guò)在運(yùn)行過(guò)程中設(shè)置斷點(diǎn),幫助開(kāi)發(fā)人員更好的理解運(yùn)行過(guò)程,下面這篇文章主要給大家介紹了關(guān)于python進(jìn)行debug操作的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Python中實(shí)現(xiàn)常量(Const)功能

    Python中實(shí)現(xiàn)常量(Const)功能

    這篇文章主要介紹了Python中實(shí)現(xiàn)常量(Const)功能,python語(yǔ)言本身沒(méi)有提供const,本文使用一個(gè)類(lèi)來(lái)實(shí)現(xiàn)常量定義功能,并介紹了使用方法,需要的朋友可以參考下
    2015-01-01
  • Python實(shí)現(xiàn)文本文件拆分寫(xiě)入到多個(gè)文本文件的方法

    Python實(shí)現(xiàn)文本文件拆分寫(xiě)入到多個(gè)文本文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)文本文件拆分寫(xiě)入到多個(gè)文本文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python gensim使用word2vec詞向量處理中文語(yǔ)料的方法

    python gensim使用word2vec詞向量處理中文語(yǔ)料的方法

    這篇文章主要介紹了python gensim使用word2vec詞向量處理中文語(yǔ)料的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論