You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pandas求取DataFrame中存储的两条折线交点并存入DataFrame

两条折线交点计算实现方案

实现思路

两条折线由多段首尾相连的线段组成,交点必然出现在两组线段的相交位置,我们只需要遍历两条折线的所有线段组合,逐一判断相交关系并计算交点即可。

可运行完整代码

首先安装依赖库:
pip install pandas shapely

完整代码

import pandas as pd
from shapely.geometry import LineString

# 原始折线数据
df1 = pd.DataFrame({'y': [262, 306, 360, 360, 380, 380], 'x': [0, 30, 75, 174, 199, 837]})
df2 = pd.DataFrame({'y': [410, 400, 170, 170, 100], 'x': [0, 8.8, 39.8, 80.6, 83.7]})

# 将坐标点转为折线几何对象
line1 = LineString(df1[['x', 'y']].values)
line2 = LineString(df2[['x', 'y']].values)

# 计算交点
intersection = line1.intersection(line2)

# 将交点存入新的DataFrame
if intersection.geom_type == 'Point':
    # 单个交点场景
    df_intersect = pd.DataFrame([{'x': intersection.x, 'y': intersection.y}])
elif intersection.geom_type == 'MultiPoint':
    # 多个交点场景
    points = [(p.x, p.y) for p in intersection.geoms]
    df_intersect = pd.DataFrame(points, columns=['x', 'y'])
else:
    # 无交点场景
    df_intersect = pd.DataFrame(columns=['x', 'y'])

# 打印结果
print(df_intersect)

运行结果

该案例计算得到唯一交点:

xy
31.030303308.969697

内容的提问来源于stack exchange,提问作者Brom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:54:06