2015-09-18 131 views
0

我有2個數據幀: 在每個數據幀中,我有具有相同名稱和值(Key_Merge1)的列,並且在每個數據幀中,我有2個不同的列名, Key_Merge2)。我怎樣才能由2列合併2個數據幀: 1.大熊貓合併2個數據幀,每個2列

DF1密鑰Merge1 2.密鑰Merge21(DF1)和Key Merge22(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 

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 

DF1 + DF2

PRODUCT PARAMETER_NAME PARAMETER VALUE1 PARAMETER_VALUE2 PARAMETER_VALUE_3 Limit1 Limit2 Limit3 
AAA PARAM1 10 10 10 22 24 26 
AAA PARAM2 11 11 11 32 34 36 
BBB PARAM1 12 12 12 42 44 46 
BBB PARAM2 12 12 12 52 54 56 

謝謝

+0

你可以發佈一個示例數據和DF,你的文本描述不夠清楚,但一般你想合併,並通過cols列表合併; hs和rhs上:'pd.merge(df1,df2,left_on = [' Key_Merge1','Key_Merge21'],right_on = ['Key_Merge1','Key_merge22'])' – EdChum

+0

感謝喲很多EdChum: – Felix

+0

你是說我的代碼段工作嗎? – EdChum

回答

0

OK,你必須以重命名DF2「PRODUCT_GROUP」爲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 

合併自然會找到相匹配的兩列,並根據需要進行內部合併