我是 Pandas 的新手,我一直在尝试不同的方法来实现这一目标。
我感兴趣的数据有标签列和 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 列?
答案 0 :(得分:1)
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