宇宙少女-郭德纲 2024-03-06 13:59 采纳率: 33.3%
浏览 7
已结题

如何进行批量数据线性插值

如图,已知一组数据(AB列),现在想求D列对应的值,除了手动一个个插值以外,有没有什么方便的方法啊?谢谢大家

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-06 14:00
    关注

    引自免费微信小程序:皆我百晓生

    当然,我可以帮助您解决这个问题。在Python中,您可以使用numpy库的interp函数或pandas库的interpolate方法来进行批量线性插值。

    假设您的数据存储在一个名为df的pandas DataFrame中,其中A列是x轴数据,B列是y轴数据,而D列是您想要插值的目标x轴新点:

    import pandas as pd
    import numpy as np
    
    # 假设这是您的原始DataFrame(AB列)
    df = pd.DataFrame({
        'A': [1, 2, 3, 4, 5],
        'B': [2, 4, 6, 8, 10]
    })
    
    # 创建一个新的列D,用于存放需要插值的目标x坐标
    df['D'] = [1.5, 2.5, 3.5, 4.5]
    
    # 使用pandas的interpolate方法进行线性插值
    df['Interpolated_B'] = df.set_index('A').interpolate(method='linear').loc[df['D']]['B']
    
    # 或者如果您想用numpy interp函数,可以这样操作:
    df['D_np_interpolated'] = df.apply(lambda row: np.interp(row['D'], df['A'], df['B']), axis=1)
    
    # 现在df['Interpolated_B']和df['D_np_interpolated']列分别存储了根据A列和D列对应的插值结果
    

    这里需要注意的是,上述代码假定您的数据是有序的,并且您希望在'A'列的基础上对'D'列进行线性插值以得到'B'列的新值。请根据实际数据情况调整代码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 3月6日

悬赏问题

  • ¥20 我把这个最后一步的exefile改成7zfile了,咋办啊,我电脑所有软件都打不开,想初始化也没办法,有没有人可以帮一下我啊
  • ¥15 python视觉识别调用鼠标宏驱动实现鼠标实时移动到目标人物中心,
  • ¥15 手机登录公司网站需要人脸识别,UC浏览器提示这样,有人知道解决方法吗
  • ¥15 《C程序设计语言》第4章第一个例题无法输出
  • ¥15 KEIL编写代码的时候,主函数中没有加任何死循环语句和条件,为什么还是无限死循环
  • ¥15 linux命令行中的一个问题
  • ¥15 如何让 python 正确发起 http2 请求?
  • ¥15 前端el-table表头显示不全
  • ¥30 如何实现用乐迪AT9S遥控器控制步进电机
  • ¥50 ASP+IIS+SQL2008,search.asp搜索突然失效