chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

常用數(shù)據(jù)清洗的SQL對(duì)比版

人工智能與大數(shù)據(jù)技術(shù) ? 來(lái)源:數(shù)據(jù)管道 ? 作者:寶器 ? 2022-09-13 10:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

日常工作中,分析師會(huì)接到一些專項(xiàng)分析的需求,首先會(huì)搜索腦中的分析體悉,根據(jù)業(yè)務(wù)需求構(gòu)建相應(yīng)的分析模型(不只是機(jī)器學(xué)習(xí)模型),根據(jù)模型填充相應(yīng)維度表,這些維度特征表能夠被使用的前提是假設(shè)已經(jīng)清洗干凈了。

但真正的原始表是混亂且包含了很多無(wú)用的冗余特征,所以能夠根據(jù)原始數(shù)據(jù)清洗出相對(duì)干凈的特征表就很重要。

前兩天在Towards Data Science上看到一篇文章,講的是用Pandas做數(shù)據(jù)清洗,作者將常用的清洗邏輯封裝成了一個(gè)個(gè)的清洗函數(shù)。

而公司的業(yè)務(wù)數(shù)據(jù)一般存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)里面,數(shù)據(jù)量很大,這時(shí)候用Pandas處理是不大方便的,更多時(shí)候用的是HiveSQL和MySql做處理。

基于此,我拓展了部分內(nèi)容,寫了一個(gè)常用數(shù)據(jù)清洗的SQL對(duì)比版,腳本很簡(jiǎn)單,重點(diǎn)是這些清洗場(chǎng)景和邏輯,大綱如圖:

adc1ad48-3305-11ed-ba43-dac502259ad0.png

01 刪除指定列、重命名列

場(chǎng)景

多數(shù)情況并不是底表的所有特征(列)都對(duì)分析有用,這個(gè)時(shí)候就只需要抽取部分列,對(duì)于不用的那些列,可以刪除。

重命名列可以避免有些列的命名過(guò)于冗長(zhǎng)(比如Case When 語(yǔ)句),且有時(shí)候會(huì)根據(jù)不同的業(yè)務(wù)指標(biāo)需求來(lái)命名。

刪除列Python版:
df.drop(col_names,axis=1,inplace=True)

刪除列SQL版:
1、selectcol_namesfromTable_Name

2、altertabletableNamedropcolumncolumnName

重命名列Python版:
df.rename(index={'row1':'A'},columns={'col1':'B'})

重命名列SQL版:
selectcol_namesascol_name_BfromTable_Name

因?yàn)橐话闱闆r下是沒(méi)有刪除的權(quán)限(可以構(gòu)建臨時(shí)表),反向思考,刪除的另一個(gè)邏輯是選定指定列(Select)。

02 重復(fù)值、缺失值處理

場(chǎng)景:比如某網(wǎng)站今天來(lái)了1000個(gè)人訪問(wèn),但一個(gè)人一天中可以訪問(wèn)多次,那數(shù)據(jù)庫(kù)中會(huì)記錄用戶訪問(wèn)的多條記錄,而這時(shí)候如果想要找到今天訪問(wèn)這個(gè)網(wǎng)站的1000個(gè)人的ID并根據(jù)此做用戶調(diào)研,需要去掉重復(fù)值給業(yè)務(wù)方去回訪。

缺失值:NULL做運(yùn)算邏輯時(shí),返回的結(jié)果還是NULL,這可能就會(huì)出現(xiàn)一些腳本運(yùn)行正確,但結(jié)果不對(duì)的BUG,此時(shí)需要將NULL值填充為指定值。

重復(fù)值處理Python版:
df.drop_duplicates()

重復(fù)值處理SQL版:
1、selectdistinctcol_namefromTable_Name

2、selectcol_namefromTable_Namegroupbycol_name

缺失值處理Python版:
df.fillna(value=0)

df1.combine_first(df2)

缺失值處理SQL版:
1、selectifnull(col_name,0)valuefromTable_Name

2、selectcoalesce(col_name,col_name_A,0)asvaluefromTable_Name

3、selectcasewhencol_nameisnullthen0elsecol_nameendfromTable_Name

03 替換字符串空格、清洗*%@等垃圾字符、字符串拼接、分隔等字符串處理

場(chǎng)景:理解用戶行為的重要一項(xiàng)是去假設(shè)用戶的心理,這會(huì)用到用戶的反饋意見(jiàn)或一些用研的文本數(shù)據(jù),這些文本數(shù)據(jù)一般會(huì)以字符串的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,但用戶反饋的這些文本一般都會(huì)很亂,所以需要從這些臟亂的字符串中提取有用信息,就會(huì)需要用到文字符串處理函數(shù)。

字符串處理Python版:
##1、空格處理
df[col_name]=df[col_name].str.lstrip()

##2、*%d等垃圾符處理
df[col_name].replace('&#.*','',regex=True,inplace=True)

##3、字符串分割
df[col_name].str.split('分割符')

##4、字符串拼接
df[col_name].str.cat()

字符串處理SQL版:
##1、空格處理
selectltrim(col_name)fromTable_name

##2、*%d等垃圾符處理
selectregexp_replace(col_name,正則表達(dá)式)fromTable_name

##3、字符串分割
selectsplit(col_name,'分割符')fromTable_name

##4、字符串拼接
selectconcat_ws(col_name,'拼接符')fromTable_name

04 合并處理

場(chǎng)景:有時(shí)候你需要的特征存儲(chǔ)在不同的表里,為便于清洗理解和操作,需要按照某些字段對(duì)這些表的數(shù)據(jù)進(jìn)行合并組合成一張新的表,這樣就會(huì)用到連接等方法。

合并處理Python版:

左右合并
1、pd.merge(left,right,how='inner',on=None,left_on=None,right_on=None,
left_index=False,right_index=False,sort=True,
suffixes=('_x','_y'),copy=True,indicator=False,
validate=None)
2、pd.concat([df1,df2])

上下合并
df1.append(df2,ignore_index=True,sort=False)

合并處理SQL版:

左右合并
selectA.*,B.*fromTable_aAjoinTable_bBonA.id=B.id

selectA.*fromTable_aAleftjoinTable_bBonA.id=B.id

上下合并
## Union:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,不包括重復(fù)行,同時(shí)進(jìn)行默認(rèn)規(guī)則的排序;
## Union All:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,包括重復(fù)行,不進(jìn)行排序;

selectA.*fromTable_aA
union
selectB.*fromTable_bB

# Union 因?yàn)闀?huì)將各查詢子集的記錄做比較,故比起Union All ,通常速度都會(huì)慢上許多。一般來(lái)說(shuō),如果使用Union All能滿足要求的話,務(wù)必使用Union All。
05、窗口函數(shù)的分組排序

場(chǎng)景:假如現(xiàn)在你是某寶的分析師,要分析今年不同店的不同品類銷售量情況,需要找到那些銷量較好的品類,并在第二年中加大曝光,這個(gè)時(shí)候你就需要將不同店里不同品類進(jìn)行分組,并且按銷量進(jìn)行排序,以便查找到每家店銷售較好的品類。

addca792-3305-11ed-ba43-dac502259ad0.png

Demo數(shù)據(jù)如上,一共a,b,c三家店鋪,賣了不同品類商品,銷量對(duì)應(yīng)如上,要找到每家店賣的最多的商品。
窗口分組Python版:

df['Rank']=df.groupby(by=['Sale_store'])['Sale_Num'].transform(lambdax:x.rank(ascending=False))

窗口分組SQL版:

select
*
from
(
Select
*,
row_number()over(partitionbySale_storeorderbySale_Numdesc)rk
from
table_name
)bwhereb.rk=1

ae012900-3305-11ed-ba43-dac502259ad0.png

可以很清晰的看到,a店鋪賣的最火的是蔬菜,c店鋪賣的最火的是雞肉,b店鋪?

嗯,b店鋪很不錯(cuò),賣了888份寶器狗。

總結(jié),上面的內(nèi)容核心是掌握這些數(shù)據(jù)清洗的應(yīng)用場(chǎng)景,這些場(chǎng)景幾乎可以涵蓋90%的數(shù)據(jù)分析前數(shù)據(jù)清洗的內(nèi)容。而對(duì)于分析模型來(lái)說(shuō),SQL和Python都是工具,如果熟悉SQL,是能夠更快速、方便的將特征清洗用SQL實(shí)現(xiàn)。

所以,請(qǐng)別張口閉口數(shù)據(jù)科學(xué),你竟SQL都不會(huì)。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    789

    瀏覽量

    46328
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    897

    瀏覽量

    29191
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8540

    瀏覽量

    136197
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4855

    瀏覽量

    89514

原文標(biāo)題:5大SQL數(shù)據(jù)清洗方法!

文章出處:【微信號(hào):TheBigData1024,微信公眾號(hào):人工智能與大數(shù)據(jù)技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    競(jìng)品數(shù)據(jù)對(duì)比接口技術(shù)解析

    與劣勢(shì),優(yōu)化產(chǎn)品策略。本文將逐步解析其設(shè)計(jì)原理、實(shí)現(xiàn)方案和最佳實(shí)踐,確保內(nèi)容真實(shí)可靠,基于行業(yè)通用技術(shù)棧(如Python和RESTful架構(gòu))。 1. 核心概念與重要性 競(jìng)品數(shù)據(jù)對(duì)比接口是一種API服務(wù),用于自動(dòng)化收集、清洗和比
    的頭像 發(fā)表于 10-23 16:16 ?153次閱讀
    競(jìng)品<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>對(duì)比</b>接口技術(shù)解析

    不用編程不用聯(lián)網(wǎng),實(shí)現(xiàn)倍福(BECKHOFF)PLC對(duì)接SQL數(shù)據(jù)庫(kù),上報(bào)和查詢數(shù)據(jù)的案例

    ?IGT-DSER智能網(wǎng)關(guān)模塊,支持各種PLC、智能儀表、遠(yuǎn)程IO與數(shù)據(jù)庫(kù)之間雙向通訊,既可以讀取設(shè)備的數(shù)據(jù)上報(bào)到SQL數(shù)據(jù)庫(kù),也可以從數(shù)據(jù)
    發(fā)表于 10-10 11:14

    工業(yè)超聲波清洗機(jī)常用清洗哪類工件

    。常見(jiàn)清洗工件類型工業(yè)超聲波清洗機(jī)的應(yīng)用范圍極為廣泛幾乎涵蓋了所有需要高質(zhì)量清洗的工業(yè)領(lǐng)域。在機(jī)械制造與汽車行業(yè)超聲波清洗機(jī)常用
    的頭像 發(fā)表于 09-16 16:30 ?732次閱讀
    工業(yè)超聲波<b class='flag-5'>清洗</b>機(jī)<b class='flag-5'>常用</b>于<b class='flag-5'>清洗</b>哪類工件

    SQL 通用數(shù)據(jù)類型

    SQL 通用數(shù)據(jù)類型 數(shù)據(jù)庫(kù)表中的每個(gè)列都要求有名稱和數(shù)據(jù)類型。Each column in a database table is required to have a name a
    的頭像 發(fā)表于 08-18 09:46 ?560次閱讀

    半導(dǎo)體封裝清洗工藝有哪些

    半導(dǎo)體封裝過(guò)程中的清洗工藝是確保器件可靠性和性能的關(guān)鍵環(huán)節(jié),主要涉及去除污染物、改善表面狀態(tài)及為后續(xù)工藝做準(zhǔn)備。以下是主流的清洗技術(shù)及其應(yīng)用場(chǎng)景:一、按清洗介質(zhì)分類濕法清洗
    的頭像 發(fā)表于 08-13 10:51 ?1488次閱讀
    半導(dǎo)體封裝<b class='flag-5'>清洗</b>工藝有哪些

    超聲波清洗機(jī)相對(duì)于傳統(tǒng)清洗方法有哪些優(yōu)勢(shì)?

    超聲波清洗機(jī)相對(duì)于傳統(tǒng)清洗方法的優(yōu)勢(shì)超聲波清洗機(jī)是一種高效、環(huán)保的清洗技術(shù),相對(duì)于傳統(tǒng)清洗方法具有多項(xiàng)顯著的優(yōu)勢(shì)。本文將深入分析超聲波
    的頭像 發(fā)表于 06-26 17:23 ?429次閱讀
    超聲波<b class='flag-5'>清洗</b>機(jī)相對(duì)于傳統(tǒng)<b class='flag-5'>清洗</b>方法有哪些優(yōu)勢(shì)?

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server數(shù)據(jù)庫(kù)被加密,無(wú)法使用。 數(shù)據(jù)庫(kù)MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?486次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>庫(kù)<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>SQL</b> Server<b class='flag-5'>數(shù)據(jù)</b>庫(kù)被加密如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解
    的頭像 發(fā)表于 06-17 15:12 ?6498次閱讀
    達(dá)夢(mèng)<b class='flag-5'>數(shù)據(jù)</b>庫(kù)<b class='flag-5'>常用</b>管理<b class='flag-5'>SQL</b>命令詳解

    大促數(shù)據(jù)庫(kù)壓力激增,如何一眼定位 SQL 執(zhí)行來(lái)源?

    你是否曾經(jīng)遇到過(guò)這樣的情況:在大促活動(dòng)期間,用戶訪問(wèn)量驟增,數(shù)據(jù)庫(kù)的壓力陡然加大,導(dǎo)致響應(yīng)變慢甚至服務(wù)中斷?更讓人頭疼的是,當(dāng)你試圖快速定位問(wèn)題所在時(shí),卻發(fā)現(xiàn)難以確定究竟是哪個(gè)業(yè)務(wù)邏輯中的 SQL
    的頭像 發(fā)表于 06-10 11:32 ?400次閱讀
    大促<b class='flag-5'>數(shù)據(jù)</b>庫(kù)壓力激增,如何一眼定位 <b class='flag-5'>SQL</b> 執(zhí)行來(lái)源?

    超聲波清洗設(shè)備的清洗效果如何?

    超聲波清洗設(shè)備是一種常用清洗各種物體的技術(shù),它通過(guò)超聲波振蕩產(chǎn)生的微小氣泡在液體中破裂的過(guò)程來(lái)產(chǎn)生高能量的沖擊波,這些沖擊波可以有效地去除表面和細(xì)微裂縫中的污垢、油脂、污染物和雜質(zhì)。超聲波
    的頭像 發(fā)表于 06-06 16:04 ?564次閱讀
    超聲波<b class='flag-5'>清洗</b>設(shè)備的<b class='flag-5'>清洗</b>效果如何?

    超聲波清洗機(jī)是否需要使用清洗劑?如何選擇合適的清洗劑?

    超聲波清洗機(jī)是一種常用清洗物品的設(shè)備,通過(guò)利用超聲波的震動(dòng)效應(yīng)來(lái)去除污垢和污染物。使用超聲波清洗機(jī)是否需要配合清洗劑呢?如何選擇合適的
    的頭像 發(fā)表于 05-15 16:20 ?712次閱讀
    超聲波<b class='flag-5'>清洗</b>機(jī)是否需要使用<b class='flag-5'>清洗</b>劑?如何選擇合適的<b class='flag-5'>清洗</b>劑?

    如何一眼定位SQL的代碼來(lái)源:一款SQL染色標(biāo)記的簡(jiǎn)易MyBatis插件

    作者:京東物流 郭忠強(qiáng) 導(dǎo)語(yǔ) 本文分析了后端研發(fā)和運(yùn)維在日常工作中所面臨的線上SQL定位排查痛點(diǎn),基于姓名貼的靈感,設(shè)計(jì)和開(kāi)發(fā)了一款SQL染色標(biāo)記的MyBatis插件。該插件輕量高效,對(duì)業(yè)務(wù)代碼無(wú)
    的頭像 發(fā)表于 03-05 11:36 ?717次閱讀
    如何一眼定位<b class='flag-5'>SQL</b>的代碼來(lái)源:一款<b class='flag-5'>SQL</b>染色標(biāo)記的簡(jiǎn)易MyBatis插件

    Devart: dbForge Compare Bundle for SQL Server—比較SQL數(shù)據(jù)庫(kù)最簡(jiǎn)單、最準(zhǔn)確的方法

    ? dbForge Compare Bundle For SQL Server:包含兩個(gè)工具,可幫助您節(jié)省用于手動(dòng)數(shù)據(jù)庫(kù)比較的 70% 的時(shí)間 dbForge數(shù)據(jù)比較 幫助檢測(cè)和分析實(shí)時(shí)SQL
    的頭像 發(fā)表于 01-17 11:35 ?860次閱讀

    dbForge Studio For SQL Server:用于有效開(kāi)發(fā)的最佳SQL Server集成開(kāi)發(fā)環(huán)境

    dbForge Studio For SQL Server:用于有效開(kāi)發(fā)的最佳SQL Server集成開(kāi)發(fā)環(huán)境 SQL編碼助手 SQL代碼分析 查詢分析器 可視化查詢生成器
    的頭像 發(fā)表于 01-16 10:36 ?1064次閱讀

    通過(guò)Skyvia Connect SQL終端節(jié)點(diǎn)訪問(wèn)任何數(shù)據(jù)

    通過(guò) Skyvia Connect SQL 終端節(jié)點(diǎn)訪問(wèn)任何數(shù)據(jù) ? 通過(guò) Skyvia Connect SQL 終端節(jié)點(diǎn)訪問(wèn)任何數(shù)據(jù)ADO.NET
    的頭像 發(fā)表于 01-02 09:31 ?586次閱讀
    通過(guò)Skyvia Connect <b class='flag-5'>SQL</b>終端節(jié)點(diǎn)訪問(wèn)任何<b class='flag-5'>數(shù)據(jù)</b>