百万数据在Excel、SQL与Python中的处理效率

原创 一村之长  2020-08-13 00:36:58  阅读 4160 次 评论 0 条
摘要:

村长今天主要想跟大家分享测试一下100万行的数据在Excel、SQL与Python中的处理效率有多大的差异,如下图所示:我们根据销售日期和客户名称两个维度统计2020年1月和2月的销售金额,看一下如何分别在Excel、SQL与Python中处理,且处理效率如何。1、Excel处理函数公式:=SUMPRODUCT((TEXT(数据!$A$2:$A$1000001,"YYYY-MM")=A2)*(数据!$B$2:$B$1000001=B2),数据!$C$2:$C$1000001)

村长今天主要想跟大家分享测试一下100万行的数据在Excel、SQL与Python中的处理效率有多大的差异,如下图所示:


1.jpg


我们根据销售日期和客户名称两个维度统计2020年1月和2月的销售金额,看一下如何分别在Excel、SQL与Python中处理,且处理效率如何。


1、Excel处理


2.jpg

函数公式:


=SUMPRODUCT((TEXT(数据!$A$2:$A$1000001,"YYYY-MM")=A2)*(数据!$B$2:$B$1000001=B2),数据!$C$2:$C$1000001)


公式计算完成时间:2分20秒


2、SQL处理


3.jpg


SQL语句:


SELECT TO_CHAR(XSRQ,'YYYY-MM') 销售月份,KHMC 客户名称,SUM(XSJE) 销售金额 FROM MY_SALE

WHERE 1=1

AND (TO_CHAR(XSRQ,'YYYY-MM') = '2020-01' OR TO_CHAR(XSRQ,'YYYY-MM') = '2020-02')

GROUP BY TO_CHAR(XSRQ,'YYYY-MM'),KHMC

ORDER BY TO_CHAR(XSRQ,'YYYY-MM'),INSTR('甲,乙,丙,丁,戊,己,庚,辛,壬,癸',KHMC)


SQL计算完成时间:0.574秒


3、Python处理


4.jpg


Python代码:


numpy np
pandas pd
time
datetime
start = time.time()
df=pd.DataFrame(pd.read_excel())
df1 = df.loc[(df[] >= ) & (df[] <= ), [,,]]
df1[] = df[].apply(x: datetime.datetime.strftime(x,))
df2 = df1.groupby([,])[].sum()
end = time.time()
elapsed = (end - start)
(+(elapsed) + )
(df2)


代码执行完成时间:55秒


通过对100万数据的多维度汇总求和我们发现,在数据库中用SQL计算效率是最高的,用时仅不到1秒钟,Excel的计算效率是最低的,两分多钟,很多时候我们甚至会以为Excel已经崩溃了(电脑配置差一点的Excel已经挂掉了),而Python的计算效率也不高,55秒,这是因为Python需要从Excel表中读取100万行的数据然后再用读取到的数据进行分析,而且无论是Excel还是SQL其实在处理数据时都有很大的局限性,想要了解更多Excel、SQL与Python对于数据的处理方法,可以继续关注村长的微信公众号,让村长与你一起共同学习,共同进步!


新二维码.png

本文地址:https://1cunzhang.com/post/17.html
版权声明:本文为原创文章,版权归 cunzhang2020 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?