首页  >  文章  >  后端开发  >  如何将 Pandas DataFrame 与重叠列组合?

如何将 Pandas DataFrame 与重叠列组合?

Linda Hamilton
Linda Hamilton原创
2024-10-25 03:23:02887浏览

How to Combine Pandas DataFrames with Overlapping Columns?

如何基于共享列组合 Pandas 数据框

问题:

尝试组合两个 Pandas 数据时使用 DataFrame.join() 方法的框架时,遇到错误:“列重叠。”

数据框:

  • restaurant_ids_dataframe:包含有关餐厅的信息ID、类别、地址等。
  • restaurant_review_frame:包括日期、星级、用户 ID 等评论数据。

尝试的代码:

<code class="python">restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')</code>

错误:

<code class="text">Exception: columns overlap: Index([business_id, stars, type], dtype=object)</code>

解决方案:

要解决错误并组合数据框,请使用merge() 方法而不是 join():

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

默认情况下,merge() 使用外连接,它组合了两个数据帧中的所有行。 on 参数指定用于执行合并操作的列。

重叠列的后缀:

由于两个数据框都有一个名为 star 的列,因此合并后的数据框将包含两列:stars_x 和stars_y。要自定义这些后缀,请使用 suffixes 参数:

<code class="python">result = pd.merge(..., suffixes=('_restaurant_id', '_restaurant_review'))</code>

这会将合并数据框中的stars 列重命名为stars_restaurant_id 和stars_restaurant_review。

以上是如何将 Pandas DataFrame 与重叠列组合?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn