python - 获取pandas df中所有时期的最大值和最大值出现的时间
问题描述
我有一个看起来像这样的熊猫数据框:
Concentr 1 Concentr 2 Time
0 25.4 0.48 00:01:00
1 26.5 0.49 00:02:00
2 25.2 0.52 00:03:00
3 23.7 0.49 00:04:00
4 23.8 0.55 00:05:00
5 24.6 0.53 00:06:00
6 26.3 0.57 00:07:00
7 27.1 0.59 00:08:00
8 28.8 0.56 00:09:00
9 23.9 0.54 00:10:00
10 25.6 0.49 00:11:00
11 27.5 0.56 00:12:00
12 26.3 0.55 00:13:00
13 25.3 0.54 00:14:00
并且我想保持每 5 分钟间隔的 Concentr 1 的最大值,以及它发生的时间和当时 concetr 2 的值。所以,对于前面的例子,我想要:
Concentr 1 Concentr 2 Time
0 26.5 0.49 00:02:00
1 28.8 0.56 00:09:00
2 27.5 0.56 00:12:00
我目前的方法是 i) 为每个 5 分钟间隔创建一个 ID 的辅助变量,例如 00:00 到 00:05 将是间隔 1,从 00:05 到 00:10 将是间隔 2 等,ii)使用 groupby 中的区间变量来获得每个区间的最大浓度 1,并且 iii)使用区间变量和浓度 1 合并回初始 df,从而确定相应的时间。
我想问是否有更好/更有效/更优雅的方式来做到这一点。
非常感谢您的帮助。
解决方案
df = df.set_index('Time')
idx = df.resample('5T').agg({'Concentr 1': np.argmax})
df = df.iloc[idx.conc]
reset_index()
如果您不希望Time成为您的索引,那么您可能需要这样做。
推荐阅读
- php - 如何将多个预先确定的 MySQL 字段关联并插入到单个选择下拉选项中
- python - 将字节数据结构隐藏到python中的字典
- php - Docker 不暴露端口
- javascript - 如何使用 JavaScript 将循环内的数组中的所有项目相乘
- python - Pandas - 用多索引划分形状不均匀的df
- python - Multiple Column + Conditional Joins
- ios - “Firebase.xcconfig”的文件参考是多个组(“支持文件”和“支持文件”)的成员;这表明一个格式错误的项目
- qt - 如何在自定义 QMenu 中触发快捷方式?
- excel - 如何将具有多个值(分隔)的单元格列分隔为新列并添加标题
- java - 无法通过 Microsoft Graph Rest API 在 Onedrive 上创建文件