【问题标题】:pandas dataframe interpolating missing days插值缺失天数的熊猫数据框
【发布时间】:2013-11-27 20:39:20
【问题描述】:

我有一个包含几列的 pandas 数据框。我有工作日的日期,不包括节假日和其他一些随机漏洞。是否有一种插值方法来填补这些空白并获取所有工作日的数据帧?

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    你可以使用 DataFrame 的 reindex() 方法:

    x = pd.date_range('2013-01-01','2013-01-07',freq='D')
    y = range(7)
    df=pd.DataFrame(index=x,data=y,columns=['value'])
    

    要添加缺失的日期(如假期),您需要重新索引它:

    x2= pd.date_range('2013-01-01','2013-01-07',freq='4H')
    df2=df.reindex(x2)
    

    然后您可以使用 Series 的 interpolate() 方法填充值中的空白(可以使用不同的插值方法):

    df2.value=df2.value.interpolate(method='linear')
    

    【讨论】:

    • 如果 x 有多个列,您将如何修改它?另外,为什么我在插值 inds[invalid],inds[valid] 中收到错误“文件”/usr/local/lib/python2.7/dist-packages/pandas/core/series.py”,第 3176 行, values[firstIndex:][valid]) TypeError: array cannot be safe cast to required type" on the interpolate line?
    • 您的系列的 dtype 是什么? 0.13 为 DataFrame 添加插值。它应该很快就会发布。
    猜你喜欢
    • 2019-05-30
    • 2018-08-14
    • 1970-01-01
    • 2020-06-06
    • 2019-08-01
    • 2021-10-06
    • 2021-07-02
    • 1970-01-01
    相关资源
    最近更新 更多