优秀的编程知识分享平台

网站首页 > 技术文章 正文

Excel、MySQL、PowerBI、Python来告诉你 数据关联与联合不一样

nanyue 2024-12-22 19:57:37 技术文章 3 ℃

阅读提示

本内容为日常频繁使用的数据处理操作,不涉及底层技术问题,烦请爱钻牛角的杠精绕行。

本内容尽量简单直白、步骤详细,适合数据分析入门。特别喜欢技术语言的大佬们,可自行跳过。

在上一篇:Python、PowerBI、Excel、MySQL,都能做?搞清楚数据聚合与分箱

老海简单介绍了数据的分组聚合以及数据分箱操作。有兴趣的可以翻看之前的内容


本期内容介绍数据的多表关联,以及多表联合操作部分,下面我们开始!

数据多表关联

使用Excel时:

  • Excel中一般使用VLOOKUP函数来关联不同的表格,特别注意该函数的使用特点
  • 有时候VLOOKUP函数,会出现奇葩的BUG现象,尤其注意最后一个参数的选择


SQL:

  • MYSQL中通过JOIN的不同方式来进行关联操作,利用关键字段完成表格连接
  • 具体的关联方式可以参考下图,无论是哪种SQL语法,基本的关联方式都是类似的
  • SQL操作时基本逻辑,主要是指定主表,从表,连接方式和连接字段


使用Power BI时:

  • 使用“主页”中的“合并查询”或“将查询合并为新查询”功能
  • 可以选择需要进行关联的表格,以及关联方式

    • 处理完成后,点击右上角的左右箭头标志,点击“展开”
    • 此时,可以展示出关联后的全部字段情况,当然也可以选择聚合起来。


    使用Python时:

    • 我们可以使用pandas中的merge函数
    • 传入4个参数,第一个是连接的主表,第二个是连接从表,第三个连接的key值,第四个是连接的方式,how为left时表示是左连接。此逻辑与SQL是相同的逻辑表达
  • 实现inner join,outer join,right join,pandas中相应的how参数为inner或者不填,outer,right。
  • SQL也是同样直接使用对应的关键字即可。其中inner join 可以缩写为join
  • 数据多表联合

    使用Excel时:

    • Exce的表格联合合并操作,一般直接使用SHITF + CTRL + 箭头键,来选择数据,然后复制 + 粘贴到最后一行完成。人人都会的操作,这里不再演示了
    • 当然也会涉及同一Excel中多个工作表,合并成同一个表格,此时可以考虑使用VBA,参考代码如下:


    sub 合并当前目录下所有工作簿的全部工作表() 
    dim mypath, myname, awbname 
    dim wb as workbook, wbn as string 
    dim g as long 
    dim num as long 
    dim box as string 
    application.screenupdating = false 
    mypath = activeworkbook.path 
    myname = dir(mypath & "\" & "*.xls") 
    awbname = activeworkbook.name 
    num = 0 
    do while myname <> "" 
    if myname <> awbname then 
    set wb = workbooks.open(mypath & "\" & myname) 
    num = num + 1 
    with workbooks(1).activesheet 
    .cells(.range("a65536").end(xlup).row + 2, 1) = left(myname, len(myname) - 4) 
    for g = 1 to sheets.count 
    wb.sheets(g).usedrange.copy .cells(.range("a65536").end(xlup).row + 1, 1) 
    next 
    wbn = wbn & chr(13) & wb.name 
    wb.close false 
    end with 
    end if 
    myname = dir 
    loop 
    range("a1").select 
    application.screenupdating = true 
    msgbox "共合并了" & num & "个工作薄下的全部工作表。如下:" & chr(13) & wbn, vbinformation, "提示" 
    end sub

    使用SQL时:

    • UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
    • 其中union相关操作分为union和union all两种。
    • 二者通常用于将两份含有同样字段的数据纵向拼接起来的场景。但前者会进行去重
    • 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。
    • 列必须拥有相似的数据类型。同时每条 SELECT 语句中的列的顺序必须相同


    使用Power BI时:

    • 在“主页”中选择“追加查询”或“将查询追加为新查询”的功能
    • 选择追加表格的数量,可以追加更多的表格,按照行的顺序进行合并操作
    • 追加的表格可以是字段相同的,也可以是字段不同的情况

    使用Python时:

    • 在pandas中一般使用.concat方法来进行数据联合操作,通过参数axis还可以通过合并联合的方式,比如默认为0时,是按照行的方向,当设置为1时,是按照列的方向进行。

    本系列文章:

    第一篇:Excel、SQL、PowerBI、Python,谁更强大?数据工具终极对比 上篇

    第二篇:数据查询与筛选:Excel、SQL、PowerBI、Python,比比谁更快

    第三篇:数据更新删除与排序:横向对比 Python、PowerBI、Excel、MySQL

    第四篇:Python、PowerBI、Excel、MySQL,都能做?搞清楚数据聚合与分箱

    写在最后


    OK,限于篇幅和时间,本篇内容先到这里了,这是本系列的第五篇,还剩最后1篇

    欢迎关注后续内容,涉及存储与导出等操作。

    本系列文章内容较长,总结了经常使用的操作提示

    可以随手收藏下来,相信总有需要的时候!

    觉得不错,别忘了点赞、转发一下,哈~

    最近发表
    标签列表