我是Pandas和Stack Overflow的新手,所以请耐心等待。我试图计算两次变化百分比(例如,一场比赛,而不是一天中的时间)。所以假设我有五名运动员。我已经格式化了.csv给了我类似以下内容:
In [3]: df
Out [3]:
Athlete Time Seconds
1 Gavin 0:17:00 1020
2 Noah 0:17:45 1065
3 Chris 0:18:46 1126
4 David 0:21:40 1300
5 Travis 0:23:11 1391
我使用了一个功能将时间转换为秒,以便下一步更轻松,但如果我不需要这样做,请告诉我。我想知道的是如何计算可能不是第一个的特定人的百分比差异(即,变化不会从最快的时间开始下降)。我希望能够输入一个名字并从中计算出来。因此,如果我选择' Chris',输出将如下:
Athlete Time Seconds Percent_Diff
1 Gavin 0:17:00 1020 -9.4
2 Noah 0:17:45 1065 -5.4
3 Chris 0:18:46 1126 0
4 David 0:21:40 1300 15.5
5 Travis 0:23:11 1391 23.5
我发现这种方式可以按名称选择一行:
(df1.loc[df1['Athlete'] == 'Chris']['Seconds'])
这为Chris产生了一行。有没有办法让我使用pct_change(),无论我选择哪个名字?我该怎么做呢?谢谢!
答案 0 :(得分:1)
df1['pct_diff'] = df['seconds'] / df.loc['Chris', 'seconds'] - 1