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

如何按线性间隔扩展Python Pandas DataFrame?初学者技术求助

实现Pandas坐标点半单位间隔插值扩展

没问题,我来帮你搞定这个需求!下面是具体的实现步骤和代码,完全贴合你想要的输出格式:

1. 构造初始DataFrame

首先我们先把你给出的原始数据转换成Pandas DataFrame:

import pandas as pd
import numpy as np

# 你的初始数据
df = pd.DataFrame({
    'x1': [0, 10],
    'y1': [0, 10],
    'x2': [2, 12],
    'y2': [2, 12]
})

2. 编写插值函数并应用到每一行

我们可以写一个自定义函数,对每一行的起点(x1,y1)和终点(x2,y2)生成半单位间隔的插值点,同时保留原始的四列数据:

def generate_interpolated_points(row):
    # 生成x轴的插值序列(包含起点和终点)
    interpolated_x = np.arange(row['x1'], row['x2'] + 0.5, 0.5)
    # 生成y轴的插值序列(和x轴长度一致)
    interpolated_y = np.arange(row['y1'], row['y2'] + 0.5, 0.5)
    
    # 构造当前行对应的扩展DataFrame
    expanded_row = pd.DataFrame({
        'x1': [row['x1']] * len(interpolated_x),
        'y1': [row['y1']] * len(interpolated_x),
        'x2': [row['x2']] * len(interpolated_x),
        'y2': [row['y2']] * len(interpolated_x),
        'Interpolated_X': interpolated_x,
        'Interpolated_Y': interpolated_y
    })
    return expanded_row

# 对每一行应用函数,然后合并所有结果
final_df = pd.concat(df.apply(generate_interpolated_points, axis=1).tolist(), ignore_index=True)

3. 查看结果

运行上面的代码后,final_df就是你想要的格式:

x1  y1  x2  y2  Interpolated_X  Interpolated_Y
0    0   0   2   2             0.0             0.0
1    0   0   2   2             0.5             0.5
2    0   0   2   2             1.0             1.0
3    0   0   2   2             1.5             1.5
4    0   0   2   2             2.0             2.0
5   10  10  12  12            10.0            10.0
6   10  10  12  12            10.5            10.5
7   10  10  12  12            11.0            11.0
8   10  10  12  12            11.5            11.5
9   10  10  12  12            12.0            12.0

关键细节说明

  • 用np.arange生成序列时,我们给终点加了0.5,因为np.arange是左闭右开区间,这样才能确保包含终点值(比如2和12)。
  • 对每一行生成的小DataFrame,我们通过pd.concat合并成最终的大DataFrame,ignore_index=True用来重置索引,避免出现重复的行号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:47:51