国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

常用數據清洗的SQL對比版

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

掃碼添加小助手

加入工程師交流群

日常工作中,分析師會接到一些專項分析的需求,首先會搜索腦中的分析體悉,根據業務需求構建相應的分析模型(不只是機器學習模型),根據模型填充相應維度表,這些維度特征表能夠被使用的前提是假設已經清洗干凈了。

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

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

而公司的業務數據一般存儲在數據倉庫里面,數據量很大,這時候用Pandas處理是不大方便的,更多時候用的是HiveSQL和MySql做處理。

基于此,我拓展了部分內容,寫了一個常用數據清洗的SQL對比版,腳本很簡單,重點是這些清洗場景和邏輯,大綱如圖:

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

01 刪除指定列、重命名列

場景

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

重命名列可以避免有些列的命名過于冗長(比如Case When 語句),且有時候會根據不同的業務指標需求來命名。

刪除列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

因為一般情況下是沒有刪除的權限(可以構建臨時表),反向思考,刪除的另一個邏輯是選定指定列(Select)。

02 重復值、缺失值處理

場景:比如某網站今天來了1000個人訪問,但一個人一天中可以訪問多次,那數據庫中會記錄用戶訪問的多條記錄,而這時候如果想要找到今天訪問這個網站的1000個人的ID并根據此做用戶調研,需要去掉重復值給業務方去回訪。

缺失值:NULL做運算邏輯時,返回的結果還是NULL,這可能就會出現一些腳本運行正確,但結果不對的BUG,此時需要將NULL值填充為指定值。

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

重復值處理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 替換字符串空格、清洗*%@等垃圾字符、字符串拼接、分隔等字符串處理

場景:理解用戶行為的重要一項是去假設用戶的心理,這會用到用戶的反饋意見或一些用研的文本數據,這些文本數據一般會以字符串的形式存儲在數據庫中,但用戶反饋的這些文本一般都會很亂,所以需要從這些臟亂的字符串中提取有用信息,就會需要用到文字符串處理函數。

字符串處理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,正則表達式)fromTable_name

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

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

04 合并處理

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

合并處理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:對兩個結果集進行并集操作,不包括重復行,同時進行默認規則的排序;
## Union All:對兩個結果集進行并集操作,包括重復行,不進行排序;

selectA.*fromTable_aA
union
selectB.*fromTable_bB

# Union 因為會將各查詢子集的記錄做比較,故比起Union All ,通常速度都會慢上許多。一般來說,如果使用Union All能滿足要求的話,務必使用Union All。
05、窗口函數的分組排序

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

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

Demo數據如上,一共a,b,c三家店鋪,賣了不同品類商品,銷量對應如上,要找到每家店賣的最多的商品。
窗口分組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店鋪很不錯,賣了888份寶器狗。

總結,上面的內容核心是掌握這些數據清洗的應用場景,這些場景幾乎可以涵蓋90%的數據分析前數據清洗的內容。而對于分析模型來說,SQL和Python都是工具,如果熟悉SQL,是能夠更快速、方便的將特征清洗用SQL實現。

所以,請別張口閉口數據科學,你竟SQL都不會。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    789

    瀏覽量

    46700
  • MySQL
    +關注

    關注

    1

    文章

    906

    瀏覽量

    29528
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136948
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90031

原文標題:5大SQL數據清洗方法!

文章出處:【微信號:TheBigData1024,微信公眾號:人工智能與大數據技術】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    選購槽式清洗機時,應該重點比較哪些技術參數?

    選購槽式清洗機時,需圍繞清洗效果、效率、穩定性、成本及智能化等核心目標,重點對比多維度技術參數,確保設備精準匹配生產需求。以下是關鍵參數的詳細拆解與對比要點:一、
    的頭像 發表于 03-04 15:29 ?45次閱讀
    選購槽式<b class='flag-5'>清洗</b>機時,應該重點比較哪些技術參數?

    濕法清洗和干法清洗,哪種工藝更適合先進制程的硅片

    、核心優劣勢三個維度,結合先進制程的核心需求,對兩種工藝進行系統對比分析:技術特性與核心能力對比濕法清洗技術原理:以液體化學試劑為核心,通過氧化、溶解、蝕刻等化學反應
    的頭像 發表于 02-25 15:04 ?139次閱讀
    濕法<b class='flag-5'>清洗</b>和干法<b class='flag-5'>清洗</b>,哪種工藝更適合先進制程的硅片

    競品數據對比接口技術解析

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

    不用編程不用聯網,實現倍福(BECKHOFF)PLC對接SQL數據庫,上報和查詢數據的案例

    ?IGT-DSER智能網關模塊,支持各種PLC、智能儀表、遠程IO與數據庫之間雙向通訊,既可以讀取設備的數據上報到SQL數據庫,也可以從數據
    發表于 10-10 11:14

    工業超聲波清洗常用清洗哪類工件

    。常見清洗工件類型工業超聲波清洗機的應用范圍極為廣泛幾乎涵蓋了所有需要高質量清洗的工業領域。在機械制造與汽車行業超聲波清洗常用
    的頭像 發表于 09-16 16:30 ?2348次閱讀
    工業超聲波<b class='flag-5'>清洗</b>機<b class='flag-5'>常用</b>于<b class='flag-5'>清洗</b>哪類工件

    SQL 通用數據類型

    SQL 通用數據類型 數據庫表中的每個列都要求有名稱和數據類型。Each column in a database table is required to have a name a
    的頭像 發表于 08-18 09:46 ?711次閱讀

    半導體封裝清洗工藝有哪些

    半導體封裝過程中的清洗工藝是確保器件可靠性和性能的關鍵環節,主要涉及去除污染物、改善表面狀態及為后續工藝做準備。以下是主流的清洗技術及其應用場景:一、按清洗介質分類濕法清洗
    的頭像 發表于 08-13 10:51 ?2422次閱讀
    半導體封裝<b class='flag-5'>清洗</b>工藝有哪些

    一體化超聲波清洗機是否真的比傳統清洗方法更高效?

    機與傳統清洗方法的效率對比,并分析其優缺點,以幫助讀者更好地了解何時選擇哪種清洗方法。目錄一體化超聲波清洗機的工作原理傳統清洗方法的概述
    的頭像 發表于 07-28 16:43 ?604次閱讀
    一體化超聲波<b class='flag-5'>清洗</b>機是否真的比傳統<b class='flag-5'>清洗</b>方法更高效?

    超聲波清洗機相對于傳統清洗方法有哪些優勢?

    超聲波清洗機相對于傳統清洗方法的優勢超聲波清洗機是一種高效、環保的清洗技術,相對于傳統清洗方法具有多項顯著的優勢。本文將深入分析超聲波
    的頭像 發表于 06-26 17:23 ?684次閱讀
    超聲波<b class='flag-5'>清洗</b>機相對于傳統<b class='flag-5'>清洗</b>方法有哪些優勢?

    數據數據恢復—SQL Server數據庫被加密如何恢復數據

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

    達夢數據常用管理SQL命令詳解

    達夢數據常用管理SQL命令詳解
    的頭像 發表于 06-17 15:12 ?7183次閱讀
    達夢<b class='flag-5'>數據</b>庫<b class='flag-5'>常用</b>管理<b class='flag-5'>SQL</b>命令詳解

    大促數據庫壓力激增,如何一眼定位 SQL 執行來源?

    你是否曾經遇到過這樣的情況:在大促活動期間,用戶訪問量驟增,數據庫的壓力陡然加大,導致響應變慢甚至服務中斷?更讓人頭疼的是,當你試圖快速定位問題所在時,卻發現難以確定究竟是哪個業務邏輯中的 SQL
    的頭像 發表于 06-10 11:32 ?565次閱讀
    大促<b class='flag-5'>數據</b>庫壓力激增,如何一眼定位 <b class='flag-5'>SQL</b> 執行來源?

    超聲波清洗設備的清洗效果如何?

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

    玻璃清洗機能提高清洗效率嗎?使用玻璃清洗機有哪些好處?

    玻璃清洗機可以顯著提高清洗效率,并且在許多方面都具有明顯的好處。以下是一些使用玻璃清洗機的好處:1.提高效率:玻璃清洗機使用自動化和精確的清洗
    的頭像 發表于 05-28 17:40 ?661次閱讀
    玻璃<b class='flag-5'>清洗</b>機能提高<b class='flag-5'>清洗</b>效率嗎?使用玻璃<b class='flag-5'>清洗</b>機有哪些好處?

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

    超聲波清洗機是一種常用清洗物品的設備,通過利用超聲波的震動效應來去除污垢和污染物。使用超聲波清洗機是否需要配合清洗劑呢?如何選擇合適的
    的頭像 發表于 05-15 16:20 ?1034次閱讀
    超聲波<b class='flag-5'>清洗</b>機是否需要使用<b class='flag-5'>清洗</b>劑?如何選擇合適的<b class='flag-5'>清洗</b>劑?