一次减去多列

subtract multiple columns at once

我有两个数据框:

df_1 = pd.DataFrame({'a' : [7,8, 2], 'b': [6, 6, 11], 'c': [4, 8, 6]})
df_1

df_2 = pd.DataFrame({'d' : [8, 4, 12], 'e': [16, 2, 1], 'f': [9, 3, 4]})
df_2

我的目标是这样的:

在某种程度上,'in one shot' 我可以多次减去每一列。

我正在尝试 for 循环,但我卡住了!

您可以将它们作为 numpy 数组进行减法(使用 .values),然后将结果放入数据框中:

df_3 = pd.DataFrame(df_1.values - df_2.values, columns=list('xyz'))

#     x   y  z
# 0  -1 -10 -5
# 1   4   4  5
# 2 -10  10  2

或者把df_1.columnsdf_2.columns重命名为['x','y','z']就可以直接减去:

df_1.columns = df_2.columns = list('xyz')
df_3 = df_1 - df_2

#     x   y  z
# 0  -1 -10 -5
# 1   4   4  5
# 2 -10  10  2