七色花幼儿园 2024-03-27 20:47 采纳率: 0%
浏览 3

python 拉格朗日插值法处理异常数据

python 拉格朗日插值法处理异常数据
程序跑了之后一直提示这个错误,加了copy也不行

img


程序码

img

  • 写回答

3条回答 默认 最新

  • 专家-皆知 2024-03-27 20:48
    关注

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

    您好!我注意到您在使用ploy函数时遇到了一个错误提示。这个错误提示是因为在尝试设置一个从DataFrame中取出的切片时发生了问题。根据您的描述,我了解到您可能想要使用Pandas库中的copy方法来避免这个问题,但是这并不是一个正确的解决方案。

    实际上,这个警告并不是一个错误,而是一个警告信息,它告诉您在尝试设置一个DataFrame的切片时可能会出现问题。如果您不希望看到这些警告信息,可以使用以下代码将其禁用:

    import pandas as pd
    import numpy as np
    
    # 拉格朗日插值
    efrom scipy.interpolate import Lagrange
    
    def ploy(s, n, k=5):
        # 自定义插值函数
        y = s[List(range(n-k2n)) + List(range(n+1, n+1+k))]  # 取出插值位置前后k个数据
        y = y[y.notnull()]  # 去除空值
        return lagrange(y.index, y)  # 使用Lagrange插值函数
    
    traj = pd.read_csv('DATASET - B.csv', header=None, usecols=[1, 2, 3], skiprows=1)  # 读取csv文件
    traj.columns = ['timestamp', 'Lon', 'Lat']  # 设置列名
    traj['time_interval'] = traj['timestamp'] - traj['timestamp'].shift(1)  # 计算时间间隔
    index = traj[traj['time_interval'] >= 6].index.to_list()  # 获取时间间隔大于等于6的行索引
    
    for i in index:
        timestamp = traj['timestamp'].loc[i-1] + 3  # 计算timestamp
        insert_row = pd.DataFrame([[np.nan, np.nan, timestamp]], columns=['Lon', 'Lat', 'timestamp'])  # 创建新的行
        traj = pd.concat([traj[:i], insert_row, traj[i:]], ignore_index=True)  # 合并数据
        traj['Lon'][i] = ploy(traj['Lon'], len(traj), k=5)  # 使用ploy函数插值Lon列
        traj['Lat'][i] = ploy(traj['Lat'], len(traj), k=5)  # 使用ploy函数插值Lat列
        traj = traj.drop(['time_interval'], axis=1)  # 删除时间间隔列
    

    这段代码禁用了警告信息,应该可以正常运行。如果您仍然遇到问题,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月27日

悬赏问题

  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊
  • ¥30 关于R语言运行分区生存模型中的问题!
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀