python - 对两个数据集的 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 包含大量其他信息,这些信息将受益于第二个数据帧的人口数据。
任何指针/相关文档都会非常有帮助。谢谢。
解决方案
你可以做merge
df2 = df2.groupby(['Ethnicity', 'Region']).sum().reset_index()
df1 = df1.merge(df2,how='left')