2016-09-20 7 views
1

Ich bin neu zu Pandas und Stack Overflow, also bitte tragen Sie mit mir. Ich versuche, die prozentuale Änderung zweimal zu berechnen (z. B. für ein Rennen, nicht für die Tageszeit). Angenommen, ich habe fünf Athleten. Ich habe die CSV-Format, um mich so etwas wie die folgenden:Pandas Prozent Veränderung auf nicht-absteigenden Zellen

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 

ich eine Funktion verwendet, um die Zeit zu Sekunden zu konvertieren, um den nächsten Schritt zu erleichtern, aber wenn ich muß dies nicht tun bitte Gib mir Bescheid. Ich frage mich, wie der prozentuale Unterschied von einer bestimmten Person berechnet wird, die möglicherweise nicht die erste Person ist (d. H. Die Änderung wird nicht von der schnellsten Zeit absteigen). Ich würde gerne einen Namen eingeben und daraus berechnen lassen. Also, wenn ich ‚Chris‘ gepflückt, wäre der Ausgang der folgende:

  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 

Ich habe diese Art und Weise fand eine Reihe von Namen zu wählen:

(df1.loc[df1['Athlete'] == 'Chris']['Seconds']) 

Dies erzeugt die Zeile für Chris. Gibt es eine Möglichkeit für mich, pct_change() dafür zu verwenden, egal welchen Namen ich wähle? Wie mache ich das? Vielen Dank!

Antwort

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