如何将具有相同列名和行数的两个不同数据帧的值相减并将它们存储到新数据帧中

问题描述 投票:0回答:1

我有两个具有相同索引和相同列名的不同数据帧,我想减去它们的每个对应值(例如 df3[1,1]=df2[1,1]-df1[1,1])并使用新值创建一个新数据框。两个数据帧的 dtype 都是 float64.

我尝试了下面的方法并且工作正常但在我看来它可能存在更简单的方法。

df3=df2.select_dtypes(include=np.number)-df1.select_dtypes(include=np.number)

你能建议另一种方式吗?

在此先感谢您的支持!

python pandas dataframe calculation
1个回答
0
投票

你可以用更短的方式做到这一点:

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.rand(5, 3), index=['a', 'b', 'c', 'd', 'e'], columns=['col1', 'col2', 'col3'])
df2 = pd.DataFrame(np.random.rand(5, 3), index=['a', 'b', 'c', 'd', 'e'], columns=['col1', 'col2', 'col3'])

df3 = df2.sub(df1)

print(df3)

返回:

       col1      col2      col3
a -0.263918  0.621965 -0.222294
b  0.939496 -0.448462  0.010776
c -0.762741 -0.053359  0.628212
d -0.316622  0.054509  0.297014
e  0.027428  0.065722  0.149325
© www.soinside.com 2019 - 2024. All rights reserved.