我有两个具有相同索引和相同列名的不同数据帧,我想减去它们的每个对应值(例如 df3[1,1]=df2[1,1]-df1[1,1])并使用新值创建一个新数据框。两个数据帧的 dtype 都是 float64.
我尝试了下面的方法并且工作正常但在我看来它可能存在更简单的方法。
df3=df2.select_dtypes(include=np.number)-df1.select_dtypes(include=np.number)
你能建议另一种方式吗?
在此先感谢您的支持!
你可以用更短的方式做到这一点:
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