Pandas:在公共列上添加两个数据帧

时间:2016-08-18 05:35:30

标签: python pandas dataframe add multiple-columns

我有2个表具有相同的列,我想添加键匹配的数字,如果没有,那么只需将其添加到输出df中..我尝试组合首先,合并,concat并加入..他们都为t1和t2创建2个单独的columnd,但是它是相同的键,所以应该只是在一起我知道这将是非常基本的东西..请问有人可以帮助吗?谢谢你!

 df1:
        t1  a         b
    0   USD 2,877   -2,418
    1   CNH 600     -593
    2   AUD 756     -106
    3   JPY 113     -173
    4   XAG 8          0

df2:
    t2  a        b
0   CNH 64      -44
1   USD 756     -774
2   JPY 1,127   -2,574
3   TWO 56      -58
4   TWD 38      -231

Output:
t   a          b
USD 3,634   -3,192
CNH 664     -637
AUD 756     -106
JPY 1,240   -2,747
XAG 8          0
TWO 56       -58
TWD 38      -231

1 个答案:

答案 0 :(得分:4)

首先DataFrames中的第一列fill_value=0,然后使用带参数print (df1.set_index('t1').add(df2.set_index('t2'), fill_value=0) .reset_index() .rename(columns={'index':'t'})) t a b 0 AUD 756.0 -106.0 1 CNH 664.0 -637.0 2 JPY 1240.0 -2747.0 3 TWD 38.0 -231.0 4 TWO 56.0 -58.0 5 USD 3633.0 -3192.0 6 XAG 8.0 0.0 的{​​{3}}:

int

如果需要将输出转换为print (df1.set_index('t1').add(df2.set_index('t2'), fill_value=0) .astype(int) .reset_index() .rename(columns={'index':'t'})) t a b 0 AUD 756 -106 1 CNH 664 -637 2 JPY 1240 -2747 3 TWD 38 -231 4 TWO 56 -58 5 USD 3633 -3192 6 XAG 8 0

tableview