【发布时间】:2021-07-13 15:39:48
【问题描述】:
我正在寻找一种有效的方法来应用公式,该方法使用一个数据帧 (df1) 的单行中的变量对另一个数据帧 (df2) 中的每一行,然后找到此操作的最小值并存储该行df2,其中该最小值作为新数据帧 (df3) 出现。 给出了示例输入/输出。
df1
Index X1 Y1 Z1
1 3 6 4
2 7 2 1
3 4 7 3
df2
Index X2 Y2 Z2
1 2 4 1
2 5 3 2
3 7 1 5
申请公式:
d = math.sqrt((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
如果要将此公式迭代地应用于 df2,其中 (X1, Y1, Z1) 来自 df1 第 1 行,(X2, Y2, Z2) 来自 df2 中的每一行以给出。
[out]
Index d
1 3.741
2 4.123
3 6.481
由于 df2 第 1 行中的 (X2, Y2, Z2) 提供了最低的 d 值,因此该行将保存到 df3 中,然后对 df1 中的每一行重复该过程。
df3
Index X2 Y2 Z2
1 2 4 1
*注意,df1 和 df2 的长度不同。抱歉,如果这个问题看起来冗长,我只是想尽可能清楚。
【问题讨论】:
标签: python pandas dataframe function