python - 将值重采样为更小的值
问题描述
2020-04-02 00:00:00+03:00 32.7171
2020-04-02 00:15:00+03:00 NaN
2020-04-02 00:30:00+03:00 NaN
2020-04-02 00:45:00+03:00 NaN
2020-04-02 01:00:00+03:00 70.2465
2020-04-02 01:15:00+03:00 NaN
2020-04-02 01:30:00+03:00 NaN
2020-04-02 01:45:00+03:00 NaN
我有这种类型的数据框,它显示 00:00:00 -> 01:00:00 和 01:00:00 -> 02:00:00 小时之间的太阳能生产
我需要在各自的时间分配值 32.7171 和 70.2465,这意味着 00:00:00 -> 01:00:00 之间的值的总和不应大于 32.7171,因为这是将产生的总能量在那个完整的小时内,01:00:00 -> 02:00:00 之间的间隔也是如此
最简单的情况是我将 32.7171 和 70.2465 均分为 4 个部分,并将值分配给相应的行(每 15 分钟 1 小时 4 行)
插值只是填充 NaN,并且 1 小时间隔之间的值的总和不正确。scipy 重采样也是如此。
有没有更好的解决方案来实现这一目标?
解决方案
我会按小时分组并转换意味着:
df['time'] = pd.to_datetime(df['time'])
df['value'] = (df['value'].fillna(0)
.groupby(df['time'].dt.floor('H'))
.transform('mean')
输出:
time value
0 2020-04-02 00:00:00+03:00 8.179275
1 2020-04-02 00:15:00+03:00 8.179275
2 2020-04-02 00:30:00+03:00 8.179275
3 2020-04-02 00:45:00+03:00 8.179275
4 2020-04-02 01:00:00+03:00 17.561625
5 2020-04-02 01:15:00+03:00 17.561625
6 2020-04-02 01:30:00+03:00 17.561625
7 2020-04-02 01:45:00+03:00 17.561625
推荐阅读
- mongodb - Mongo 查询以从集合中获取选择性字段
- symfony - 匹配原则扩展配置
- python-3.x - 无法使用 Python 显示散景图
- delphi - 为什么不按alt键的快捷方式
- typescript - 重命名从 TypeScript 内部库隐式导入的符号
- azure - 如何在 Azure 中对 SQL 数据库资源进行可用性测试?
- r - 用于多行数据的 ggplot 线图 - 与 matplot 等效的 ggplot
- excel - 切片器更改时运行宏
- macos - 为什么我无法在 macOS 上更改环境变量 $USERNAME?
- c++ - 如何提取将使用 clang 生成的所有符号?