我有一个数据帧(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)的中位数,然后将其附加到数据框作为新列,如下所示:
这怎么办?我有大约5万条记录要分组。
答案 0 :(得分:1)
将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