Python对比SQL的5大数据清洗场景和方法01 删除指定列、重命名列02 重复值、缺失值处理03 替换字符串空格、清洗*%@等垃圾字符、字符串拼接、分隔等字符串处理04 合并处理05、窗口函数的分( 二 )


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:对两个结果集进行并集操作 , 不包括重复行 , 同时进行默认规则的排序;
##UnionAll:对两个结果集进行并集操作 , 包括重复行 , 不进行排序;
selectA.*fromTable_aA
union
selectB.*fromTable_bB
#Union因为会将各查询子集的记录做比较 , 故比起UnionAll , 通常速度都会慢上许多 。 一般来说 , 如果使用UnionAll能满足要求的话 , 务必使用UnionAll 。
05、窗口函数的分组排序场景
假如现在你是某宝的分析师 , 要分析今年不同店的不同品类销售量情况 , 需要找到那些销量较好的品类 , 并在第二年中加大曝光 , 这个时候你就需要将不同店里不同品类进行分组 , 并且按销量进行排序 , 以便查找到每家店销售较好的品类 。

Python对比SQL的5大数据清洗场景和方法01 删除指定列、重命名列02 重复值、缺失值处理03 替换字符串空格、清洗*%@等垃圾字符、字符串拼接、分隔等字符串处理04 合并处理05、窗口函数的分
文章图片
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

Python对比SQL的5大数据清洗场景和方法01 删除指定列、重命名列02 重复值、缺失值处理03 替换字符串空格、清洗*%@等垃圾字符、字符串拼接、分隔等字符串处理04 合并处理05、窗口函数的分
文章图片
可以很清晰的看到 , a店铺卖的最火的是蔬菜 , c店铺卖的最火的是鸡肉 , b店铺?
嗯 , b店铺很不错 , 卖了888份宝器狗 。
总结 , 上面的内容核心是掌握这些数据清洗的应用场景 , 这些场景几乎可以涵盖90%的数据分析前数据清洗的内容 。 而对于分析模型来说 , SQL和Python都是工具 , 如果熟悉SQL , 是能够更快速、方便的将特征清洗用SQL实现 。