为df中的每一行减去另一个df

时间:2019-09-25 15:24:18

标签: python pandas

示例。

df1 is 1000 x 20
df2 is subset of df1 10 x 20

我希望df1的每一行都减去df2并将其相加。这将返回另一个df3作为1000 x 10

1 个答案:

答案 0 :(得分:0)

您可以使用numpy广播功能来执行此操作。为此,您需要重塑数据以使其可广播

您可以在下面执行类似于sudo代码的操作

df1_data = df1.values.reshape(-1, 10, 20)
df2_data = df2.values

result = df1_data - df2_data  # this will give array of shape 100*10*20

result.reshape(-1, 20) # will give array of shape 1000*20

# you can now use the result to create a data frame or use it in further calcualations