2017-07-05 60 views
0

情况:如何将一个熊猫数据框的列与另一个数据帧的每一列求和?

两个数据帧(df1和df2)具有相同的三个索引,例如, “A”,“B”,“C”。 df1和df2的列数不同。 df1和df2中的所有单元都填充了float类型的数据。

DF1:

AA BB CC DD 
A 28.0 2.3 2.0 113 
B 24.0 2.4 2.4 116 
C 33.5 10.0 4.0 0 

DF2:

AAA BBB CCC DDD EEE 
A 1.01 4.04 7.07 10.10 13.13 
B 2.02 5.05 8.08 11.11 14.14 
C 3.03 6.06 9.09 12.12 15.15 

目标:

从DF2选择(例如, “BBB”)的柱后求和以DF1的每一列,结果应该存储在新的数据帧(df_new)中。 df_new应该是df1(列数和行数)的格式,并且与df1具有相同的列名和索引。

new_df:

AA  BB  CC  DD 
A 32.04 6.34 6.04 117.04 
B 29.05 7.45 7.45 121.05 
C 39.56 16.06 10.06 6.06 

我的方法:

要使用DF1的每一列求和DF2的第三列中,我试图:

df_new = df1.add(df2.iloc [ :,2])

结果:

如所希望的,df_new比赛在结构和标签DF1。 问题是:所有单元格显示“NaN”而不是所需的总和为浮动。

df_new:

AA BB CC DD 
A NaN NaN NaN NaN 
B NaN NaN NaN NaN 
C NaN NaN NaN NaN 
+0

有样品dataframes和预期产量会有所帮助。 – Zero

+0

@JohnGalt感谢您的快速回复。我希望这些例子有所帮助。 –

回答

1

这里有一种方法,使用add

In [293]: df1.add(df2['BBB'], axis=0) 
Out[293]: 
     AA  BB  CC  DD 
A 32.04 6.34 6.04 117.04 
B 29.05 7.45 7.45 121.05 
C 39.56 16.06 10.06 6.06 
+0

非常感谢!这正是我所需要的。 –

相关问题