python - Pandas 使用多个数据帧执行功能

标签 python pandas

我在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/

相关文章:

python-3.x - 如何使索引值显示在 x 轴刻度上?

python - 如何打印PCAP文件中的所有目标端口和源端口?

Python 请求 : how do I check if a user already logged in or not?

matrix - pandas - 针对所有其他行将函数应用于当前行

python - 如何在 Pandas 中使用 read_excel 提高处理速度?

python - 使用 Pandas 的 Groupby df 列

python - Pandas:将数据帧转换为相邻行的数据帧列表

python - 亚马逊云上的 Docker

python - 通过 sh 模块运行 python 脚本后访问 stderr

python - TypeError : must be convertible to a buffer, 不是 HTTPResponse