如何计算分组中位数并作为新列附加回数据框

How to cacluate groupby median and attach back to dataframe as new column

我有一个如下所述的数据框 (df)。

Packet  Orgin   Destination Delivery_Time
A1      NYK          HAM          6
A1      NYK          HAM          5
A1      NYK          HAM          6
A1      NYK          HAM          6
A1      NYK          HAM          3
A1      NYK          HAM          4
A1      NYK          HAM          8
B1       HK           JP          2
B1       HK           JP          4
B1       HK           JP          2
B1       HK           JP          4
B1       HK           JP          4
B1       HK           JP          4
B1       HK           JP          3
B1       HK           JP          5
B1       HK           JP          5
B1       HK           JP          6
C1      CDG          LUX          1
D1      MEX          NYK          3

我想计算数据帧的中值 (df) 并作为新列附加回数据帧,如下所示

这是怎么做到的?。我有大约 50K 条记录要 groupby 。

GroupBy.transformmedian 一起使用:

df['med'] = df.groupby('Packet')['Delivery_Time'].transform('median')
print (df)
   Packet Orgin Destination  Delivery_Time  med
0      A1   NYK         HAM              6    6
1      A1   NYK         HAM              5    6
2      A1   NYK         HAM              6    6
3      A1   NYK         HAM              6    6
4      A1   NYK         HAM              3    6
5      A1   NYK         HAM              4    6
6      A1   NYK         HAM              8    6
7      B1    HK          JP              2    4
8      B1    HK          JP              4    4
9      B1    HK          JP              2    4
10     B1    HK          JP              4    4
11     B1    HK          JP              4    4
12     B1    HK          JP              4    4
13     B1    HK          JP              3    4
14     B1    HK          JP              5    4
15     B1    HK          JP              5    4
16     B1    HK          JP              6    4
17     C1   CDG         LUX              1    1
18     D1   MEX         NYK              3    3