首页 > 解决方案 > 根据另一个数据集的列值从数据集中提取两列的值

问题描述

我正在尝试根据另一个数据集的列值从数据集中提取两列的值。

例子:

df1:

index      ID            Value
0          45            04      
1          32            03       
2          34            08    
3          6             05    
4          45            04        

df2

index      ID            Weight    Height        
0          6             50        155   
1          32            55        164     
2          34            66        162    
3          45            54        163
4          99            55        155

我想得到:

df1

index      ID            Value            Weight            Height  
0          45            04               54                163
1          32            03               55                164   
2          34            08               66                162   
3          6             05               50                155  
4          45            04               54                163

我试过:

pd.merge(df1, df2, on="id")

但它给了我比 df1 更大的数据集。

谢谢你。

标签: pythonpandas

解决方案


您可以随心所欲,只需删除一个额外的列:

(pd.merge(df1, df2, on="ID", suffixes=('', '_y'))
   .drop('index_y', axis=1)
   .sort_values('index')
)

输出:

index   ID  Value   Weight  Height
    0   45      4       54     163
    1   32      3       55     164
    2   34      8       66     162
    3    6      5       50     155
    4   45      4       54     163

推荐阅读