添加分组最大-最小列?

时间:2021-06-03 16:43:50

标签: pandas

我是 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 列?

1 个答案:

答案 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