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中的这两个函数,并在数据分析中发挥更大的作用!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大锤爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值