pandas:merge / concat.join两个dfs

时间:2016-09-13 11:35:56

标签: pandas join dataframe merge concat

我有2个dfs,我想合并/连接/加入。

这是df1:

 item    country  Month Year
 honda   JP       2     16
 sony    GB       6     16
 jazz    JP       6     16
 honda   US       6     16
 jazz    JP       1     16

这是df2:

 item    country  pay 
 honda   JP       y   
 sony    GB       n   
 jazz    JP       y   
 honda   US       y   
 jazz    JP       n   

这就是我想要合并的样子:

 item    country  pay  Month Year
 honda   JP       y     2     16
 sony    GB       n     6     16
 jazz    JP       y     6     16
 honda   US       y     6     16
 jazz    JP       n     1     16

我使用df = df1.join(df2, how='outer')但它创建了重复项。

如果有意义,我想使用itemcountry列合并到pay列中?

1 个答案:

答案 0 :(得分:3)

我认为DataFramesprint (pd.concat([df1.set_index(['item','country']), df2.set_index(['item','country'])], axis=1).reset_index()) item country Month Year pay 0 honda JP 2 16 y 1 sony GB 6 16 n 2 jazz JP 6 16 y 3 honda US 6 16 y 4 jazz JP 1 16 n concat需要set_index

input[type=submit] {
    cursor: pointer;
    border-radius: 5px;
    border: 1px solid #555753;
    background-color: cor11;
    font-weight: normal;
    text-transform: uppercase;
    box-shadow: 0 -3px 7px #888a85 inset;
}
input[type=submit]:hover {
    cursor: pointer;
    border-radius: 5px;
    border: 1px solid #555753;
    background-color: cor11;
    font-weight: normal;
    text-transform: uppercase;
    box-shadow: 0px 3px 7px #888a85 inset;
    text-shadow: 0 0;
}