我在Python中有两个pandas数据框,一个只有一行数据。另一个有很多行。我想遍历第一行的每一行并从中减去第二行。然后我想将结果存储在第二个大小的数据框中。第一个是
df1 = pd.DataFrame({"Amounts": [1.1, 2.2, 3.3]})
第二个是
df2 = pd.DataFrame({"A": [500, 600, 700, 800, 900],
"B": [250, 750, 900, 500, 200],
"C": [450, 125, 600, 200, 800]})
我试图从另一个中减去一个(从 A 中减去 1.1,从 B 中减去 2.2,从 C 中减去 3.3)以获得以下输出:
A B C
[498.9, 247.8, 446.7],
[598.9, 747.8, 121.7],
[698.9, 897.8, 596.7],
[798.9, 497.8, 196.7],
[898.9, 197.8, 796.7]
并将其保存为另一个数据框。您可以提供的任何帮助都会非常有帮助!如果您还可以提供类似算术的答案(即乘法而不是减法),则会加分
最佳答案
您需要将 df1
转换为 Series 和 numpy 数组以绕过索引对齐:
df3 = df2.sub(df1['Amounts'].to_numpy(), axis=1)
有很多替代方案,例如完整的 numpy:
df3 = df2.sub(df1.to_numpy().ravel(), axis=1)
或者完整的 Pandas :
df3 = df2.sub(df1['Amounts'].set_axis(df2.columns), axis=1)
输出:
A B C
0 498.9 247.8 446.7
1 598.9 747.8 121.7
2 698.9 897.8 596.7
3 798.9 497.8 196.7
4 898.9 197.8 796.7
关于python - Pandas 使用多个数据帧执行功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73802853/