我有一个带有名称列的数据框,对于每个名称,我想计算第一个值和其他每个值之间的差异.
数据帧
Name First Run Second Run Third Run Time
0 Jakub 315 279 276 9:00
1 Jakub 322 260 270 9:00
2 Jakub 248 260 213 15:00
3 Jakub 246 288 294 15:00
4 Jakub 276 274 263 15:00
5 Bene 222 268 246 9:00
6 Bene 236 302 263 9:00
7 Bene 208 245 224 15:00
8 Bene 283 245 245 15:00
9 Bene 278 257 249 15:00
first_values = df.groupby(['Name']).first()[['First Run','Second Run','Third Run']]
First Run Second Run Third Run Time
Name
Jakub 315 279 276 9:00
Bene 222 268 246 9:00
输出_df
Name First Run Second Run Third Run Time
0 Jakub 0 0 0 9:00
1 Jakub 7 -19 -6 9:00
2 Jakub -67 -19 -63 15:00
3 Jakub -69 9 18 15:00
4 Jakub -39 -5 -13 15:00
5 Bene 0 0 0 9:00
6 Bene 14 34 17 9:00
7 Bene -14 -23 22 15:00
8 Bene 61 -23 -1 15:00
9 Bene 56 -9 3 15:00
我可以找出正确的函数来获得所需的输出.我try 了下面的代码,但我得到了一个打字错误.
df.Name.map(first_values.index).sub(first_values)