python - 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 中执行此操作的最简单方法是什么?
解决方案
您可以使用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
推荐阅读
- node.js - 我如何过滤来自 express 服务器和 nodejs 的 GET 查询
- swift - 如何使用 Data 和 Codable 在 Swift 中优化 NSAttributedString 的存储?
- docker - 不能在两个容器之间卷曲
- sql-server - 变量名称“@ID”已被声明。变量名称在查询批处理或存储过程中必须是唯一的
- php - 使用 php 选择要搜索的索引
- python-3.x - pickle 需要 uuid.SafeUUID
- typescript - 如何要求参数是严格扩展部分的泛型
- json - 从 JSON 中提取后,完成数据不附加全局数组(swift 4)
- github - 允许任何人在未经事先授权的情况下对 Github 存储库做出贡献
- r - 检查向量的元素是否等于 R 中另一个向量 +/- 1 的元素