gpt4 book ai didi

python - Pandas :推断尾部的缺失值

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:54 25 4
gpt4 key购买 nike

我有一个 pandas 数据框 df,它的 GDP 值也与 yyyy-mm TimePeriod 索引。

import numpy as np
import pandas as pd
import pandas_datareader.data as web
gdp = web.DataReader("GDP", "fred", start, end).resample('M').mean().interpolate(method='linear').round().to_period('M')

Date GDP
2015-07 16528.0
2015-08 16534.0
2015-09 16541.0
2015-10 16548.0
2015-11 16556.0
2015-12 16564.0
2016-01 16572.0
2016-02 16602.0
2016-03 16633.0
2016-04 16664.0
2016-05 16702.0
2016-06 16740.0
2016-07 16778.0
2016-08 16803.0
2016-09 16827.0
2016-10 16851.0
2016-11 16869.0
2016-12 16886.0
2017-01 16903.0
2017-02 16946.0
2017-03 16988.0
2017-04 17031.0
2017-05 17075.0
2017-06 17120.0
2017-07 17164.0
2017-08 NaN
2017-09 NaN
2017-10 NaN
2017-11 NaN
2017-12 NaN

GDP 每季度发布一次。最新数据点是 2017 年第三季度。所以我重新采样以获得每月值并在值缺失时进行插值。如何使用样条曲线或 3 个月移动平均线等推断以填补今年剩余时间的 NaN 剩余?我看过一些使用多项式的例子,但那看起来有点过头了(pandas extrapolation of polynomial)。我想知道是否有更简单的方法。谢谢!

最佳答案

通过使用 interpolate

df.GDP=df.GDP.interpolate(method='spline', order=2)

df
Out[197]:
Date GDP
0 2015-07 16528.000000
1 2015-08 16534.000000
2 2015-09 16541.000000
3 2015-10 16548.000000
4 2015-11 16556.000000
5 2015-12 16564.000000
6 2016-01 16572.000000
7 2016-02 16602.000000
8 2016-03 16633.000000
9 2016-04 16664.000000
10 2016-05 16702.000000
11 2016-06 16740.000000
12 2016-07 16778.000000
13 2016-08 16803.000000
14 2016-09 16827.000000
15 2016-10 16851.000000
16 2016-11 16869.000000
17 2016-12 16886.000000
18 2017-01 16903.000000
19 2017-02 16946.000000
20 2017-03 16988.000000
21 2017-04 17031.000000
22 2017-05 17075.000000
23 2017-06 17120.000000
24 2017-07 17164.000000
25 2017-08 17211.095399
26 2017-09 17258.357329
27 2017-10 17306.504998
28 2017-11 17355.538404
29 2017-12 17405.457549

数据输入

df
Out[195]:
Date GDP
0 2015-07 16528.0
1 2015-08 16534.0
2 2015-09 16541.0
3 2015-10 16548.0
4 2015-11 16556.0
5 2015-12 16564.0
6 2016-01 16572.0
7 2016-02 16602.0
8 2016-03 16633.0
9 2016-04 16664.0
10 2016-05 16702.0
11 2016-06 16740.0
12 2016-07 16778.0
13 2016-08 16803.0
14 2016-09 16827.0
15 2016-10 16851.0
16 2016-11 16869.0
17 2016-12 16886.0
18 2017-01 16903.0
19 2017-02 16946.0
20 2017-03 16988.0
21 2017-04 17031.0
22 2017-05 17075.0
23 2017-06 17120.0
24 2017-07 17164.0
25 2017-08 NaN
26 2017-09 NaN
27 2017-10 NaN
28 2017-11 NaN
29 2017-12 NaN

关于python - Pandas :推断尾部的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48000804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com