首页 > 解决方案 > 对两个数据集的 pandas 执行 V-lookup 类型的操作

问题描述

我有两个数据帧,它们都包含匹配的 A 列和 B 列。但是每个数据帧中出现的次数并不相同。数据框二包含第三列,我想将其带到我的第一个数据框并匹配列 A 和 B 相同的值。

数据框的形状或大小不同,DF #1 的列和行比显示的多很多,所以我不能把它举起来。

例子:

东风 #1

Ethnicity Region
Asian     West
Asian     West
Asian     North
Black     West
Black     West
Black     West
Mixed     South
Mixed     West
Mixed     West
Mixed     South East

东风 #2

Ethnicity   Region    Population
Asian      South East   278372
Asian        East       32992
Asian        South      33503
Asian        East       86736
Asian        East       58871
Asian        North      66270
Black        East       117442
Black        East       69925
Black        West       33614
Black        West       13903

所以本质上,我想做一个 V 查找类型函数并在第一个数据帧中创建一个新列,这将告诉我第二个数据帧的人口。

到目前为止,我已经完成了一个 groupby 函数,该函数成功地将第二个数据框中每个区域的居民总数相加,但我不确定如何将其移动到第一个数据框中。

此任务背后的原因是数据帧 #1 包含大量其他信息,这些信息将受益于第二个数据帧的人口数据。

任何指针/相关文档都会非常有帮助。谢谢。

标签: pythonpandas

解决方案


你可以做merge

df2 = df2.groupby(['Ethnicity', 'Region']).sum().reset_index()
df1 = df1.merge(df2,how='left')

推荐阅读