首页 > 解决方案 > Pandas:将季度数据转换为月度数据

问题描述

我有一些季度数据需要转换为月度数据才能使用另一个数据集。数据如下所示:

Date Value
1/1/2010 100
4/1/2010 130
7/1/2010 160

我需要做的是估算缺失月份的值,使其看起来像这样:

Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160

之前找不到很多关于如何执行此操作的问题。只有相反(每月到每季度)。我反过来尝试了其中一种方法,但没有奏效:

pd.PeriodIndex(df.Date, freq='M')

在 Pandas 中执行此操作的最简单方法是什么?

标签: pythonpandasdatetimetime-series

解决方案


您可以使用resample

# convert to period
df['Date'] = pd.to_datetime(df['Date']).dt.to_period('M')

# set Date as index and resample
df.set_index('Date').resample('M').interpolate()

输出:

         Value
Date          
2010-01  100.0
2010-02  110.0
2010-03  120.0
2010-04  130.0
2010-05  140.0
2010-06  150.0
2010-07  160.0

推荐阅读