首页 > 解决方案 > 基于两个不同的数据框创建新的数据框

问题描述

我是python新手,有人可以帮我吗?我有两个数据框(DF1 和 DF2),如下所示,

DF1:
 project_ID  dataID#
 AAA         dataset_01
 BBB         dataset_02
 CCC         dataset_01
 DDD         dataset_02

DF2:
dataID#     Items

 dataset_01  Apple
 dataset_01  Orange
 dataset_02  banana
 dataset_02  Grape

每个“dataID”都有“项目”列表。基本上我想创建新的数据框以根据每个project_ID(来自DF1)的dataID#列出“项目”(来自DF2)我希望输出如下所示(新数据框(DF3))像这样,

project_ID    dataID#      Items
 AAA         dataset_01   Apple
 AAA         dataset_01   Orange
 BBB         dataset_02   banana
 BBB         dataset_02   Grape
 CCC         dataset_01   Apple
 CCC         dataset_01   Orange
 DDD         dataset_02   banana
 DDD         dataset_02   Grape

谢谢

标签: pythondataframe

解决方案


您正在寻找合并操作,特别是称为 leftjoin 或 leftouterjoin 的东西。

在 Pandas 中,您可以这样做。

df1 = df1.merge(df2[["dataID#", "Items"]], on="dataID#", how="left")

文档:https ://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

PS 在列中格式化您的数据框将不胜感激。


推荐阅读