Pandas合并2个数据帧,每个2列

时间:2015-09-18 15:33:53

标签: pandas merge

我有2个数据框: 在每个数据帧中,我有具有相同名称和值的列(Key_Merge1),并且在每个数据帧中,我有2个具有相同值的不同列名(Key_Merge2)。如何将2个数据帧合并为2列: 1.按键合并1 2.按键合并21(DF1)和密钥合并22(DF2)

DF1

class Bar():

    foo = Foo()
    param = something

    @foo.decorate(param)
    def func(self):
        # do something

DF2

PRODUCT PARAMETER_NAME  PARAMETER VALUE1    PARAMETER_VALUE2    PARAMETER_VALUE_3
AAA PARAM1  10  10  10
AAA PARAM2  11  11  11
BBB PARAM1  12  12  12
BBB PARAM2  12  12  12

DF1 + DF2

PRODUCT_GROUP   PARAMETER_NAME  Limit1  Limit2  Limit3
AAA PARAM1  22  24  26
AAA PARAM2  32  34  36
BBB PARAM1  42  44  46
BBB PARAM2  52  54  56

谢谢

1 个答案:

答案 0 :(得分:0)

好的,你必须重命名' PRODUCT_GROUP'在DF2中,merge可以工作:

In [34]:
pd.merge(df1, df2.rename(columns={'PRODUCT_GROUP':'PRODUCT'}))

Out[34]:
   PRODUCT PARAMETER_NAME  PARAMETER VALUE1  PARAMETER_VALUE2  \
0      AAA         PARAM1                10                10   
1      AAA         PARAM2                11                11   
2      BBB         PARAM1                12                12   
3      BBB         PARAM2                12                12   

   PARAMETER_VALUE_3  Limit1  Limit2  Limit3  
0                 10      22      24      26  
1                 11      32      34      36  
2                 12      42      44      46  
3                 12      52      54      56  

合并自然会找到匹配的2列并根据需要执行内部合并