python - 按时间间隔+聚合函数对熊猫进行分组
问题描述
假设我有一个这样的熊猫:
2010-01-01 04:10:00:025 69
2010-01-01 04:10:01:669 1
2010-01-01 04:10:03:027 3
2010-01-01 04:10:04:003 8
2010-01-01 04:10:05:987 10
2010-01-01 04:10:06:330 99
2010-01-01 04:10:08:369 55
2010-01-01 04:10:09:987 5000
2010-01-01 04:10:11:148 13
我需要将其转换为如下格式:
2010-01-01 04:10:00:000 69 69
2010-01-01 04:10:05:000 5000 10
2010-01-01 04:10:10:000 13 13
第一列对应于从 2010-01-01 04:10:00:000 开始的每 5 秒间隔。
第二列是所有分组行的最大值。
第三列是所有分组行中的第一列。
我怎么能得到那个?
解决方案
假设你的意思是5 seconds
,我们可以使用pd.Grouper
withagg
和min, first
:
# use this line if your first column is not datetime type yet.
# df['col1'] = pd.to_datetime(df['col1'], format='%Y-%m-%d %H:%M:%S:%f')
df.groupby(pd.Grouper(key='col1', freq='5s'))['col2'].agg(['max', 'first']).reset_index()
输出
col1 max first
0 2010-01-01 04:10:00 69 69
1 2010-01-01 04:10:05 5000 10
2 2010-01-01 04:10:10 13 13
注意:由于您没有提供列名,所以我称它们为col1, col2
推荐阅读
- powershell - 如何将选项作为地图传递?
- amazon-web-services - 如何为 AWS ACM 设置权限以限制每个域的用户
- java - 如何在Android中进行一键登录和注册
- spring-boot - 逗号分隔的请求参数不适用于 Kotlin 数据类
- scala - 如何为自定义错误处理创建自己的解码器?
- c++ - 从 LLVM Kaleidoscope 教程编译代码时遇到问题
- python - 如何在高斯朴素贝叶斯中获得特征重要性
- react-native - 如何实现具有不同颜色的条形图,如 REACT-NATIVE 中的图片所示。帮我解决这个问题
- sql - 递归查询中的 PostgreSQL 顺序
- python - 这种使用 Flask-Login 中的 current_user 的方式安全吗?