如何计算分组中位数并作为新列附加回数据框
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.transform
与 median
一起使用:
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
我有一个如下所述的数据框 (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.transform
与 median
一起使用:
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