DataFrame.resample不包括最后一行

时间:2019-07-30 02:28:17

标签: python pandas dataframe

所以我想使用填充方法对数据进行下采样

我有一个数据:

2020-01-01  1.248310e+06
2021-01-01  1.259511e+06
2022-01-01  1.276312e+06
2023-01-01  1.298714e+06

输出应为:

2020-01-01  1.248310e+06
2020-02-01  1.248310e+06
2020-03-01  1.248310e+06
....        ...
2023-10-01  1.298714e+06
2023-11-01  1.298714e+06
2023-12-01  1.298714e+06

这是我尝试过的

 down_sampling = df.resample('MS', fill_method= 'ffill')

我得到类似的东西

2020-01-01  1.248310e+06
2020-02-01  1.248310e+06
2020-03-01  1.248310e+06
....        ...
2022-11-01  1.276312e+06
2022-12-01  1.276312e+06
2023-01-01  1.298714e+06

这里的问题是2023年只有一个月。

您能提出任何解决方法的建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以这样做:

index = pd.date_range('1/1/2020', periods=4, freq='YS')
series = pd.Series([1.248310e+06, 1.259511e+06, 1.276312e+06, 1.298714e+06], index=index)
series2 = pd.Series(1.298714e+06, pd.date_range('12/1/2023', periods=1))
series = series.append(series2)
down_sampling = series.resample('MS').ffill()