美文网首页
拉格朗日插值法实例

拉格朗日插值法实例

作者: 橘猫吃不胖 | 来源:发表于2020-05-29 17:38 被阅读0次

    关于拉格朗日插值法,参考:

    数据集

    加载我们的数据集

    data_path = r'D:\OneDrive\python\datasets\python_data_analysis_and_mining_action-master\chapter4\data\catering_sale.xls'
    df = pd.read_excel(data_path)
    

    这个是每天的销量数据

    缺失值

    前面我们知道,对于缺失值的处理,我们可以使用插值法来填补数据

    我们得先看看有多少缺失值

    df.isna().sum()
    

    这里只有1条缺失值数据

    df[df['销量'].isna()]
    

    拉格朗日插值法

    我们找到缺失值了,下面就该调用函数使用了
    先回顾一下,怎么使用,首先我们要知道变量X和变量Y

    因为我们的缺失值是销量,所以变量Y就是已知的销量
    X的话,可以是索引
    前面提过,元素个数不要太多,因为这个scipy中的lagrange函数并不稳定
    至于到底选取几个,我暂时没有什么概念,书中取的是10,我这里也取10吧,前面取5个,后面取5个,共10个值

    df2 = df.query('9<=index<14 or 15<=index<19')['销量']
    

    这里我其实有一个疑问,就是X的值如何取?
    书中是使用的下标,也就是index的值

    x = df2.index.values
    y = df2.values
    

    调用拉格朗日函数

    rs = lagrange(x,y)
    print(rs)
    

    最后,看看我们的缺失值是多少呢?

    rs(14)
    

    这里得出来是3831,这个数据靠不靠谱呢?

    先从我们的区间中看看:


    3831看上去还可以,而且呢,因为我们还有一个日期字段,也可以结合星期看看

    df['星期几'] = df['日期'].dt.weekday_name
    
    df.query('星期几=="Saturday"')
    

    好像也可以接受呢


    最后呢,我们要回顾一下,我们都做了些什么,我们是一步一步处理的,但是实际情况下,我们不会手工的去看缺失值在哪里,我们需要用代码去筛选出缺失值,并且将最后的值插回数据集中,思考一下,如何自动化?

    相关文章

      网友评论

          本文标题:拉格朗日插值法实例

          本文链接:https://www.haomeiwen.com/subject/itkfzhtx.html