自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用于清理數(shù)據(jù)的五個簡單有效 Python 腳本

開發(fā) 前端
通常情況下,在機器學習中的數(shù)據(jù)清理往往是一件令人頭疼的事情,本文整理了一份清單,列出了5個常用的Python腳本,用于自動化數(shù)據(jù)清理。

將 PDF 轉(zhuǎn)換為 CSV

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

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')

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

合并 CSV 文件

許多系統(tǒng)會提供導出到CSV選項,但是沒有辦法在導出數(shù)據(jù)之前首先合并數(shù)據(jù)。這可能導致5個以上的文件導出到一個文件夾,這些文件包含相同的數(shù)據(jù)類型。該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 ] )
#創(chuàng)建新文件
merged_file.to_csv(path + 'merged_{}.csv'.format(strftime("%m-%d-%yT%H:%M:%S")), index=False)
print('Merge complete.')

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

從 CSV 文件中刪除重復的行

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

import pandas as pd
# 獲取文件名
filename = input('filename: ')
#定義要檢查是否重復的CSV列名
duplicate_header = input('header name: ')
#獲取文件的內(nèi)容
file_contents = pd.read_csv(filename)
# 刪除重復的行
deduplicated_data = file_contents.drop_duplicates(subset=[duplicate_header], keep="last", inplace=True)
#創(chuàng)建新文件
deduplicated_data.to_csv('deduplicated_data.csv')

拆分 CSV 列

當從其他系統(tǒng)導出文件時,它有時會包含一列數(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ù)集

假設您有一個帳戶列表和與其關聯(lián)的訂單,并希望查看訂單歷史以及關聯(lián)的帳戶詳細信息。一個很好的方法就是通過合并數(shù)據(jù)到一個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)
#創(chuàng)建新的csv文件
joined_data.to_csv('joined_data.csv')

最后

這些腳本可以有效幫助我們進行自動化清理數(shù)據(jù),然后可以將清理后的數(shù)據(jù)加載到機器學習模型中進行處理。Pandas是操作數(shù)據(jù)的首選庫,因為它提供了許多的選項。

責任編輯:華軒 來源: 不靠譜的貓
相關推薦

2024-01-04 16:43:42

Python前端

2022-10-10 23:19:02

Python腳本語言工具庫

2020-04-22 11:11:22

LinuxShell腳本

2021-08-05 13:49:39

Python工具開發(fā)

2022-10-08 14:47:21

Python工具開源

2020-04-22 12:46:30

LinuxShell腳本

2017-06-27 10:23:01

Linuxps_memPython

2021-08-30 11:07:32

iPhone存儲空間

2022-02-17 13:03:28

Python腳本代碼

2022-08-29 18:34:46

Pythonsubprocess系統(tǒng)

2018-09-17 11:55:21

Linux命令管理進程

2020-05-15 10:22:07

Python開發(fā)工具

2023-10-07 11:36:15

2021-01-03 19:58:35

混合云云遷移云計算

2025-01-24 08:00:00

深度偽造人工智能網(wǎng)絡安全

2010-08-27 10:12:53

CSS

2022-09-30 14:59:30

Ubuntu

2023-01-12 09:06:55

裝飾器Python

2013-04-18 14:54:08

Linux監(jiān)控腳本Linux監(jiān)控

2022-09-28 13:33:27

云運營云計算
點贊
收藏

51CTO技術棧公眾號