Pandas Power Play: 构建数据帝国的两表JOIN和group by之旅

这篇具有很好参考价值的文章主要介绍了Pandas Power Play: 构建数据帝国的两表JOIN和group by之旅。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在数据分析的过程中,常常需要把多张表格进行合并,或者按照某些规则进行分组统计。Pandas是Python中一个非常强大的数据处理库,其中的JOIN和group by函数能够帮助我们轻松地完

成这些任务。本教程将详细介绍如何使用这两个函数,让你在数据分析的道路上更加游刃有余!

为什么要搞group by

JOIN操作允许你将多个数据表按照某个共同的字段进行连接,创建一个更完整、更有洞察力的数据集。这样做的好处有:

  1. 数据整合:通过JOIN操作,你可以将多个相关的数据源合并在一起,形成一个更全面的数据集。例如,你可以将客户信息表和销售记录表JOIN在一起,从而获取每个客户的购买历史和偏好。
  2. 数据拓展:JOIN操作可以通过连接多个表来增加数据的维度。通过关联不同的字段,你可以丰富数据集并探索更多的关联关系,提供更全面的洞察和决策支持。

其次,GROUP BY操作允许你根据一个或多个字段对数据进行分组,并对每个组应用聚合函数。这带来了以下好处:

  1. 汇总统计:通过GROUP BY操作,你可以对数据进行分组,并计算每个组内的统计指标,如平均值、总和、计数等。这可以帮助你发现数据的整体趋势和模式,并快速洞察不同组之间的差异。
  2. 数据探索:GROUP BY操作使你能够以更细粒度的方式分析数据,并深入了解不同组的特征。通过分组聚合,你可以揭示隐藏在数据中的细微变化、异常值或关联关系,从而发现更有价值的见解

JOIN函数的使用方式 🤝

JOIN函数是将两张表格按照某些关键词进行合并的函数,Pandas中提供了四种JOIN方式:

INNER JOIN 👥

内连接是对两张表格进行交集操作,只有两张表格中关键词完全匹配的行才会被保留。使用Pandas的JOIN函数进行INNER JOIN的代码如下:

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
                    'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
                    'value2': [5, 6, 7, 8]})
result = df1.join(df2, how='inner', on='key')
print(result)

输出结果:

  key  value1  value2
1   B       2       5
3   D       4       6

OUTER JOIN 🤝

外连接是对两张表格进行合并,并且保留所有行,如果某些行不匹配,则用NaN填充。使用Pandas的JOIN函数进行OUTER JOIN的代码如下:

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
                    'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
                    'value2': [5, 6, 7, 8]})
result = df1.join(df2, how='outer', on='key')
print(result)

输出结果:

  key  value1  value2
0   A     1.0     NaN
1   B     2.0     5.0
2   C     3.0     NaN
3   D     4.0     6.0
4   E     NaN     7.0
5   F     NaN     8.0

LEFT JOIN 👈

左连接是以左边的表格为基础,将右边的表格按照关键词进行合并,并保留所有行。如果右边的表格中某些行不匹配,则用NaN填充。使用Pandas的JOIN函数进行LEFT JOIN的代码如下:

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
                    'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
                    'value2': [5, 6, 7, 8]})
result = df1.join(df2, how='left', on='key')
print(result)

输出结果:

  key  value1  value2
0   A       1     NaN
1   B       2     5.0
2   C       3     NaN
3   D       4     6.0

RIGHT JOIN 👉

右连接是以右边的表格为基础,将左边的表格按照关键词进行合并,并保留所有行。如果左边的表格中某些行不匹配,则用NaN填充。使用Pandas的JOIN函数进行RIGHT JOIN的代码如下:

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
                    'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
                    'value2': [5, 6, 7, 8]})
result = df1.join(df2, how='right', on='key')
print(result)

输出结果:

  key  value1  value2
0   B     2.0       5
1   D     4.0       6
2   E     NaN       7
3   F     NaN       8

group by函数的使用方式 🧑‍🤝‍🧑

group by函数是按照某些规则对表格进行分组并统计的函数,Pandas中提供了非常丰富的group by函数,包括sum、count、mean等等。使用Pandas的group by函数进行分组统计的代码如下:

df = pd.DataFrame({'key1': ['A', 'A', 'B', 'B', 'A'],
                   'key2': ['C', 'D', 'C', 'D', 'C'],
                   'value1': [1, 2, 3, 4, 5],
                   'value2': [6, 7, 8, 9, 10]})
result = df.groupby('key1').sum()
print(result)

输出结果:

      value1  value2
key1
A          8      23
B          7      17

其中,'column_name'是你要按照哪一列进行分组统计的列名。如果你要进行多列分组统计,可以使用一个列表来传递多个列名:

df = pd.DataFrame({'key1': ['A', 'A', 'B', 'B', 'A'],
                   'key2': ['C', 'D', 'C', 'D', 'C'],
                   'value1': [1, 2, 3, 4, 5],
                   'value2': [6, 7, 8, 9, 10]})
result = df.groupby(['key1', 'key2']).mean()
print(result)

输出结果:

           value1  value2
key1 key2
A    C        3.0     8.0
     D        2.0     7.0
B    C        3.0     8.0
     D        4.0     9.0

结束语 🎉

以上就是Python Pandas的两表JOIN和group by教程的全部内容。希望这个教程能够帮助你更好地掌握Pandas中的这两个函数,并在数据分析中发挥更大的作用!文章来源地址https://www.toymoban.com/news/detail-453026.html

到了这里,关于Pandas Power Play: 构建数据帝国的两表JOIN和group by之旅的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【学习笔记】pandas提取excel数据形成三元组,采用neo4j数据库构建小型知识图谱

    【学习笔记】pandas提取excel数据形成三元组,采用neo4j数据库构建小型知识图谱

    前言     代码来自github项目 neo4j-python-pandas-py2neo-v3,项目作者为Skyelbin。我记录一下运行该项目的一些过程文字以及遇到的问题和解决办法。 invoice_data 如下: node_list_key 如下: node_list_value 如下: df_data 如下: 构建的知识图谱如下所示: 压缩包里其他文件说明(个人理

    2024年01月16日
    浏览(11)
  • 【python】【pandas】获得DataFrame的列数的两种方法:shape属性或columns属性。

    要获得DataFrame的列数,可以使用 shape 属性或 columns 属性。 下面是两种方法的示例: 1. 使用 shape 属性:  输出结果: 2. 使用 columns 属性: 输出结果: 在上述代码中,我们创建了一个示例DataFrame,并使用不同的方法获得列数。使用 shape 属性,我们可以获取DataFrame的形状信息,其

    2024年02月16日
    浏览(10)
  • 利用Power Automate,轻松下载Power BI报告中的数据

    利用Power Automate,轻松下载Power BI报告中的数据

        Power Automate是微软的流程自动化(RPA)工具,可以友好、无代码的实现各种低效工作流程的自动化处理。它也已经集成到了Power BI中,在 Power BI 报表中创建 Power Automate 视觉对象后,终端用户只需单击报表中的按钮即可运行自动化流。 通过二者的协同,可以提供更强大、更灵

    2024年02月04日
    浏览(10)
  • 两表查询常用SQL

    两表查询常用SQL

    1、两个表:table_a和table_b,求两表的交集,:INNER JOIN SELECT a.*,b.* FROM table_a AS a INNER JOIN table_b AS b ON a.id=b.id; 2、两个表:table_a和table_b,table_a为主表,关联查询table_b,table_b有数据就显示,没有数据就显示null,:LEFT JOIN SELECT a.*,b.* FROM table_a AS a LEFT JOIN table_b A

    2024年02月03日
    浏览(6)
  • Microsoft Power Platform 基础到实战(3)-Power BI (1)-数据分析表达式 DAX(1)

    Microsoft Power Platform 基础到实战(3)-Power BI (1)-数据分析表达式 DAX(1)

    Power BI 是一个统一、可扩展的自助服务和企业商业智能 (BI) 平台。您可以利用它连接到任何数据并实现数据可视化,并将视觉对象无缝融入您的日常应用中。 数据分析表达式 (DAX) 是在 Analysis Services、Power BI 以及 Excel 中的 Power Pivot 使用的公式表达式语言。 DAX 公式包括函数、

    2024年02月08日
    浏览(7)
  • Power BI矩阵行数据平铺及列数据排序

    Power BI矩阵行数据平铺及列数据排序

           众所周知,Power BI中矩阵通常由三部分属性组成,分别是行、列以及值。各属性添加不同数据组合后,矩阵会呈现出不同的样式,有时我们需要对样式进行灵活调整,比如将行属性的多级数据平铺展示以及列属性数据排序。 一、矩阵行属性的多级数据展示 1、利用+/

    2023年04月16日
    浏览(9)
  • Power BI 数据导入(SQL Server、MySQL、网页数据)

    Power BI 数据导入(SQL Server、MySQL、网页数据)

    POWER BI 可以连接多种数据源,包括: 文件(文本、CSV、Excel) 数据库(SQL Server、MySQL、Azure Cosmos DB等NoSQL数据库) Power Platform和Azure(都是微软的数据产品/云平台) 联机服务(Google Analytics、GitHub等常用的应用软件) 其他(比如网页、Python脚本等) Excel(Power Query、Power Pivot、Power

    2024年02月04日
    浏览(11)
  • 两表union 如何保证group by 字段唯一

    当要计算的指标可能来源多个表时,可能会使用到union all把不同的表中计算的指标合起来。关于union all使用条件: 两个要联合的SQL语句 字段个数 必须一样,而且 字段类型 要“相容”(一致) 另外,回顾union和union all的区别:union会自动 压缩多个结果集合中的重复结果 ,而

    2024年02月09日
    浏览(9)
  • 大数据Flink(九十):Lookup Join(维表 Join)

    大数据Flink(九十):Lookup Join(维表 Join)

    文章目录 Lookup Join(维表 Join) Lookup Join 定义(支持 BatchStreaming) :Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维表 Join。

    2024年02月04日
    浏览(9)
  • 数据大帝国:大数据与人工智能的巅峰融合

    数据大帝国:大数据与人工智能的巅峰融合

    🎉欢迎来到AIGC人工智能专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如

    2024年02月07日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包