情况:
两个数据帧(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
我的方法:
为了将df2的第3列与df1的每一列相加,我尝试了:
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 :(得分: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