如何解决将 Pandas 数据框与'join()”组合时出现的列重叠错误?

Patricia Arquette
发布: 2024-10-27 06:07:03
原创
214 人浏览过

How to Resolve Column Overlap Errors While Combining Pandas Data Frames with `join()`?

使用公共列上的 Merge 组合 Pandas 数据框

在处理数据分析任务时,通常需要将来自多个源的数据组合到单个数据框中。 Pandas 提供了多种执行数据框连接的方法,其中之一是 merge(),它使我们能够基于公共列组合数据框。

假设我们有两个数据框:

restaurant_ids_dataframe:

Column Name Data Type
business_id int
categories object
city object
full_address object
latitude float
longitude float
name object
neighborhoods object
open bool
review_count int
stars float
state object
type object

restaurant_review_frame:

Column Name Data Type
business_id int
date object
review_id int
stars float
text object
type object
user_id int
votes int

目标是使用 DataFrame.join 将这些数据帧组合成单个数据帧() 方法。我们通常期望在公共列business_id 上执行联接。但是,当尝试以下代码行时:

restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')
登录后复制

我们收到错误:

Exception: columns overlap: Index([business_id, stars, type], dtype=object)
登录后复制

要解决此问题,我们应该使用 merge() 方法,并指定on 参数中的公共列。 merge() 方法旨在处理重叠列并相应地组合数据帧。语法为:

<code class="python">import pandas as pd
pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')</code>
登录后复制

这里,how 参数定义要执行的连接类型。在本例中,我们使用了 external,它执行完整的外连接,组合两个数据帧中的所有行。

此外,我们可以使用 suffixes 参数指定合并列的后缀,从而允许我们自定义结果数据框中的列名称。例如,要将列后缀为 star_restaurant_id 和 star_restaurant_review,我们可以使用:

<code class="python">pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer', suffixes=('_restaurant_id', '_restaurant_review'))</code>
登录后复制

merge() 方法提供了一组全面的参数,可以对连接操作提供细粒度的控制,从而实现高效且准确的数据框组合。

以上是如何解决将 Pandas 数据框与'join()”组合时出现的列重叠错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!