如何在元素不按顺序排列的两个不同列上合并两个熊猫数据帧?

astro123

我有两个看起来像这样的数据集:

          name  Longitude   Latitude      continent
0        Aruba -69.982677  12.520880  North America
1  Afghanistan  66.004734  33.835231           Asia
2       Angola  17.537368 -12.293361         Africa
3     Anguilla -63.064989  18.223959  North America
4      Albania  20.049834  41.142450         Europe

另一个数据集如下所示:

          COUNTRY  GDP (BILLIONS) CODE
0     Afghanistan           21.71  AFG
1         Albania           13.40  ALB
2         Algeria          227.80  DZA
3  American Samoa            0.75  ASM
4         Andorra            4.80  AND

在此,列nameCOUNTRY包含国家/地区名称,但顺序不同。

如何将第二个数据框合并为第一个数据框,并将CODE添加到第一个数据框。

要求的输出:

          name  Longitude   Latitude      continent   CODE
0        Aruba -69.982677  12.520880  North America   NaN
1  Afghanistan  66.004734  33.835231           Asia   AFG
2       Angola  17.537368 -12.293361         Africa   NaN
3     Anguilla -63.064989  18.223959  North America   NaN
4      Albania  20.049834  41.142450         Europe   ALB

尝试:

import numpy as np
import pandas as pd

df = pd.DataFrame({'name' : ['Aruba', 'Afghanistan', 'Angola', 'Anguilla', 'Albania'],
          'Longitude' : [-69.982677, 66.004734, 17.537368, -63.064989, 20.049834],
          'Latitude' : [12.520880, 33.835231, '-12.293361', 18.223959, 41.142450],
          'continent' : ['North America','Asia','Africa','North America','Europe'] })
print(df)

df2 = pd.DataFrame({'COUNTRY' :  ['Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra'],
          'GDP (BILLIONS)' : [21.71, 13.40, 227.80, 0.75, 4.80],
          'CODE' : ['AFG', 'ALB', 'DZA', 'ASM', 'AND']})
print(df2)


pd.merge(left=df, right=df2,left_on='name',right_on='COUNTRY')
# but this fails
pp

默认情况下,pd.merge使用how='inner',它使用两个数据帧之间的关键点交集在这里,您只需要how='left'使用left数据框中的

res = pd.merge(df, df2, how='left', left_on='name', right_on='COUNTRY')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pandas:如何在两个不同的重叠时间序列上合并两个数据帧

PHP的preg比赛。查找两个值不按顺序排列的元素

如何以交替顺序排列两个不同对象列表的 XMLArray 项目?

如何合并两个不同长度的数据帧?

如何从两个不同的熊猫数据帧计算比率

如何合并具有不同时间戳密度的两个熊猫数据帧?

在具有不同实例数的特定列上合并两个不同长度的数据帧

如何将两个按字典顺序排列的String ArrayList合并到新的第三个ArrayList中?

在多列上合并两个熊猫数据框

如何在 R 中合并具有不同长度和两个条件的两个数据帧?

如何在Spark中合并两个不同的数据帧?

检查两个项目是否在列表中,但不是按固定顺序排列?

如何在略有不同的键上合并两个熊猫数据框

使用浮点索引合并两个熊猫数据帧

熊猫-合并两个未堆叠的数据帧

比较两个熊猫数据帧的内容,即使行的顺序不同

合并两个不同结构的数据帧

找出熊猫中两个不同数据帧的交集

两个熊猫数据帧的条件逐元素乘法

合并顺序不同的两个文件中的数据。

如何基于一行中的值和不同的列名合并两个熊猫数据帧?

合并两个具有不同列数和顺序的数据框(熊猫)

按组 ID 合并两个不同长度的数据帧

SQL如何在两个不同的列上使用两个不同的条件带来两个结果

合并两个数据帧后如何在两个条件下过滤生成的数据帧?

熊猫合并两个不同长度的数据框

如何将两个不同数据帧的两列按行绑定?

逐个元素地汇总两个具有不同索引的熊猫数据帧

如何在不同的列上构建两个选择?