Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4.  
  5. data = pd.read_csv("Athlete Rank Moments.csv", encoding = "latin-1", usecols = [0, 2, 4, 5, 16],
  6. parse_dates = True, infer_datetime_format = True)
  7.  
  8. data_filtered = data.loc[:, ['Person/Team', 'Rank', 'Discipline', 'RankDate', 'Rating']]
  9.  
  10. data_ordered = data_filtered.sort_values(["Person/Team", "RankDate"], ascending=[True, True])
  11.  
  12. data_ordered['Percent Change'] = data_ordered.groupby(['Person/Team', 'Discipline'])['Rating'].pct_change()
  13. data_ordered["Percent Change"] = data_ordered["Percent Change"].apply(lambda x: x * 100)
  14. data_ordered.rename(columns= {"Person/Team": "Person"}, inplace = True)
  15.  
  16. data_ordered["RankDate"] = pd.to_datetime(data_ordered["RankDate"], errors="coerce")
  17. #data_ordered["Percent Change"] = pd.to_numeric(data_ordered["Percent Change"])
  18.  
  19. '''
  20. for person, person_df in data_ordered.groupby("Person"):
  21. person_df["RankDate"] = pd.to_datetime(person_df["RankDate"], errors = "coerce")
  22. plt.plot(person_df["RankDate"], person_df["Percent Change"], color = "blue")
  23. plt.title("Percent change in ranking")
  24. for event, event_df in person_df.groupby("Discipline"):
  25. event_df["RankDate"] = pd.to_datetime(event_df["RankDate"], errors = "coerce")
  26. plt.plot(event_df["RankDate"], event_df["Percent Change"], color = "red")
  27. plt.savefig("test.png", bbox_inches = "tight")
  28. '''
  29.  
  30. for person, person_df in data_ordered.groupby("Person"):
  31. plt.figure()
  32. plt.title("Percent change in rating")
  33. for event, event_df in person_df.groupby("Discipline"):
  34. person_df = person_df.sort_values("RankDate")
  35. event_df = event_df.sort_values("RankDate", ascending = True)
  36. plt.plot(event_df["RankDate"], event_df["Percent Change"], color = "red")
  37. plt.plot(person_df["RankDate"], person_df["Percent Change"], color = "blue")
  38. try:
  39. plt.savefig("%s.png" % person, bbox_inches = "tight")
  40. except FileNotFoundError:
  41. print("%s" % person + "is not a valid file name")
  42. except ValueError:
  43. print("An unknown error occurred")
  44. plt.close("all")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement