在选择2列或更多列时添加Pandas数据帧

时间:2018-02-13 13:17:01

标签: python pandas

当有2个相同列的数据帧时,如何选择特定列并添加数据帧?

pandas中的

数据帧如下

a_val = {'col1': [1, 2], 'col2': [3, 4], 'col3': [7, 8]}
b_val = {'col1': [1, 5, 2], 'col2': [3, 2, 4], 'col3': [7, 17, 33]}
a = pd.DataFrame(a_val)
b = pd.DataFrame(b_val)

如何使结果数据框 C (请参阅下面的预期结果 C

例如,我将 A 数据框设为

A

B 数据框为

B

C 数据框为

C

1 个答案:

答案 0 :(得分:1)

我认为你需要merge然后总结最后一栏:

c = pd.merge(a,b, on=['col1', 'col2'], suffixes=('','_'))
      .assign(col3=lambda x: x.col3 + x.col3_).drop('col3_', 1)

与...相同:

c = pd.merge(a,b, on=['col1', 'col2'], suffixes=('','_'))
c.col3 = c.col3.add(c.col3_)
c = c.drop('col3_', 1)

print (c)
   col1  col2  col3
0     1     3    14
1     2     4    41