OpenWorld中文网

你的位置:OpenWorld中文网 > Degen中文网 >

使用DataFrame实现两表连接方式

发布日期:2025-01-04 10:34    点击次数:75
DataFrame实现两表连接 连接查询:包含连接操作的查询称为连接查询 连接查询包含:等值,自然,外连接,内连接,坐连接,自连接…… 挖坑坑,深入学习了慢慢填。 pandas的DataFrame的连接不算真正意义的连接查询,只是在两个DataFrame中的操作达到了像连接查询的效果 用pandas库下的DataFram创建DataFrame类型的数据 假设other是一张表,caller是另一张表,等值连接的SQL查询语句可以表示为 用pandas.DataFrame.join实现相同的效果 用pd.merge实现 pandas中DataFrame表连接操作,及merge与join区别 为了方便维护,一般公司的数据在数据库内都是分表存储的,比如用一个表存储所有用户的基本信息,一个表存储用户的消费情况。     所以,在日常的数据处理中,经常需要将两张表拼接起来使用,这样的操作对应到SQL中是join,在Pandas中则是用merge来实现。     上面的引入部分说到merge是用来拼接两张表的,那么拼接时自然就需要将用户信息一一对应地进行拼接。     所以进行拼接的两张表需要有一个共同的识别用户的键(key),也就是on参数所指定的列。 总结来说,整个merge的过程就是将信息一一对应匹配的过程,下面介绍merge的四种类型,分别为'inner'、'left'、'right'和'outer'。 merge参数讲解 创建两个DataFrame dishes_info: order_sample: 我们使用merge方法将两表根据dishes_id列连接起来,使用左连接的方式 新表data数据如下 以上是常用的方式,根据两表都具有的列(相同列名,相同类型)进行表连接。 有的时候,合并操作不是用DataFrame的列,而是用索引作为键。把left_index和right_index选项的值置为True,就可将其作为合并DataFrame的基准。 生成的data数据如下: 此文章对这两表进行以索引为基准的连接操作,没有意义,这两表就不是这样连的(有意义的连接应该是根据dishes_id进行连接),主要就是硬解释一下left_index和right_index选项的作用。 pandas中join函数的使用方式 DataFrame对象的join()函数就像是merge()函数的left_index & right_index 为 True。DataFrame对象的join()函数更适合于根据索引进行合并,我们可以用它合并多个索引相同列不同的DataFrame对象。 以下是我根据行索引进行连接,报错显示有相同的列,就是两表都有dishes_id这列,但是我没有修改 我们对join正确的用法: 由于join默认根据行索引进行连接,所以我们修改两表的行索引为dishes_id列在进行连接 dishes_info数据: order_sample数据: 修改完成后对两表进行根据行索引作为基准的表连接 生成data表的数据 如上所示,join合并操作默认是以行索引而不是以列为基准。 Join函数有on参数,如果指定了,那就表示join连接以行索引并且以on指定的列联合作为键进行表连接。 总结 以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。



Powered by OpenWorld中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024