pandas - 添加分组的最大值 - 最小值列?
问题描述
我是 pandas 的新手,并且在尝试不同的方法来实现这一点。
例如,我感兴趣的数据有 label 和 elapsed_duration_ms 列
turn_data.loc[:, ['label', 'elapsed_duration_ms']].head()
label elapsed_duration_ms
601 1:21.46 Lap 13 *PoB 60100
602 1:21.46 Lap 13 *PoB 60200
603 1:21.46 Lap 13 *PoB 60300
604 1:21.46 Lap 13 *PoB 60400
605 1:21.46 Lap 13 *PoB 60500
我想找到“elapsed_duration_ms”的最大值和最小值之间的差异,我可以通过像这样在标签上分组来获得
grouped = turn_data.groupby('label')
elapsed_time_data = (
grouped['elapsed_duration_ms'].max() -
grouped['elapsed_duration_ms'].min())
elapsed_time_data
label
1:21.46 Lap 13 *PoB 13700
1:22.11 Lap 14 13800
1:22.16 Lap 8 13800
1:22.17 Lap 2 13700
Name: elapsed_duration_ms, dtype: int64
我不确定从这里做什么。我的最终目标是创建每个标签的最大最小值的条形图。我的假设是我想添加一个新的 max-min 列?
解决方案
import pandas as pd
df = pd.DataFrame({'A': ['a', 'a', 'a', 'b', 'b', 'b'],
'B': [1, 2, 3, 400, 500, 600]})
返回:
A B
0 a 1
1 a 2
2 a 3
3 b 400
4 b 500
5 b 600
然后:
df.groupby('A').agg(lambda x: max(x) - min(x)).reset_index()
返回:
A B
0 a 2
1 b 200
推荐阅读
- watchos - 关于 WKWatchConnectivityRefreshBackgroundTask 的说明
- rxjs - rxjs ForkJoin 但是当 2 个 observables 中有 1 个给出值时完成
- grep - 在一组目录中的一组特定文件中搜索字符串
- node.js - 为什么我得到 npm 错误 403
- sql-server - 可以创建表格但不显示在对象资源管理器中,无法选择或删除表格?
- vba - 是否可以使用 VBA 将别名分配给查询的字段以供以后在报表中使用?
- amazon-web-services - Amazon RDS Snapshot 系统是一样的自动备份吗?
- r - 使用 dplyr 在列内创建新组
- sql - 考虑到主列中具有相同值的不同列中的另一个值
- asp.net-core - IDPmetadata url 在 IIS 服务器上给出问题 - ITfoxtec - 没有这样的主机是已知的