如何减去不同PandasDataFrame上的许多列(假设列具有相同的名称)[duplicate]

7vhp5slm  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(74)

此问题在此处已有答案

Subtract two unbalanced DataFrames in Pandas(2个答案)
昨天关门了。
我有两个列大小不同的 Dataframe 。但是其中一些列有相同的名称。
我怎样才能减去具有相同名称的列,并在新的 Dataframe 上保持其他列不变?
示例:假设我有以下两个 Dataframe :

data1 = {'Brazil': [1, 2], 'Chile': [3, 4], 'Indonesia': [5, 6], 'China': [7, 8]}
data2 = {'Brazil': [0, 1], 'Chile': [2, 3], 'China': [4, 5]}

df1 = pd.DataFrame(data=data1)
df2 = pd.DataFrame(data=data2)

我如何才能得到下面的结果,而不命名每列的代码(我有53列的原始文件要减去)

谢谢你,

omqzjyyz

omqzjyyz1#

您可以将subfill_value=0一起使用:

out = (df1.sub(df2, fill_value=0)
          .reindex(columns=df1.columns) # optional: original column order
          .convert_dtypes()             # optional: integer if possible
       )

输出:

Brazil  Chile  Indonesia  China
0       1      1          5      3
1       1      1          6      3

相关问题