如何将一个熊猫数据框的一列与另一个数据框的每一列相加?
Posted
技术标签:
【中文标题】如何将一个熊猫数据框的一列与另一个数据框的每一列相加?【英文标题】:How to sum a column of one pandas dataframe to each column of another dataframe? 【发布时间】:2017-12-08 21:17:42 【问题描述】:情况:
两个数据帧(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
【问题讨论】:
拥有示例数据框和预期输出会有所帮助。 @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
【讨论】:
非常感谢!这正是我所需要的。以上是关于如何将一个熊猫数据框的一列与另一个数据框的每一列相加?的主要内容,如果未能解决你的问题,请参考以下文章