python - Pandas 非下降细胞的百分比变化

标签 python pandas

我是 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() 来实现此目的,无论我选择哪个名称?我该怎么做呢?谢谢!

最佳答案

df1['pct_diff'] = df['seconds'] / df.loc['Chris', 'seconds'] - 1

关于python - Pandas 非下降细胞的百分比变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584544/

相关文章:

python - `set_index` 为什么要为列名创建索引标签?

python - django-pipeline 和 s3boto 存储似乎不能一起工作

Python Pandas Dataframe - 计算行之间的差异并取最小值

Python CSV 阅读器类型错误 : string pattern on bytes object

python - Pyomo 卡住解算器

python - 提取与 Orange 的关联规则时出现问题?

python-3.x - Dataframe序列检测: Find groups where three rows in a row have negative values

python - 将 Pandas Csv 中的字符串转换为 Int 列

python - 使用 pip 安装时忽略一些依赖项

python - 从 Python 字典中获取任意元素的最快方法是什么?