python - 如何将每分钟数据的表转换为每小时数据的表?
问题描述
我有一张包含分钟数据的表格。此表中缺少某些行。
import pandas as pd
df = pd.DataFrame([
("2019-02-15 17:56:00", 11, 10),
("2019-02-15 17:57:00", 22, 10),
("2019-02-15 18:00:00", 33, 20),
("2019-02-15 18:01:00", 44, 20),
("2019-02-15 18:02:00", 55, 20),
("2019-02-16 10:01:00", 66, 50),
("2019-02-16 10:02:00", 77, 50)],
columns=["date_time", "last_val", "sum_val"])
我需要一张包含每小时数据的表格。列中的last_val
位置将是一小时内的最后一个值。在该sum_val
列中将有每小时所有值的总和。
要使结果表如下所示:
解决方案
您的 groupkey 不是很容易找到,首先需要将date_time
till切片hour
并转换回datetime
object ,然后groupby
使用agg
groupkey=pd.to_datetime(df.date_time.dt.strftime('%Y-%m-%d %H'))
df.groupby(groupkey).agg({'last_val':'last','sum_val':'sum'})
Out[141]:
last_val sum_val
date_time
2019-02-15 17:00:00 22 20
2019-02-15 18:00:00 55 60
2019-02-16 10:00:00 77 100
推荐阅读
- date - 在awk中将数字日期转换为字母
- asp.net-mvc - 我可以使用 Highcharts .NET Wrapper 让图表自动调整高度(而不是使用 400 像素)吗?
- node.js - Node.js 中异步等待的超时不起作用?
- c++ - boost::asio UDP 广播客户端仅接收“快速”数据包
- html - 如何将默认 laravel 分页 css 类更改为主题 css 类?
- javascript - 如何使用 JavaScript 从数组中搜索关键字并突出显示父 div 标签中的所有文本
- xml - Muenchian 分组样式表返回重复的未分组节点
- node.js - redirect_uri 的参数值无效:不允许使用非公共域:http://localhost:3000/auth/google/callback
- c# - 具有时间限制的耐用功能扇出 - 保持“运行”状态
- php - php Mysql 3 表加入