Guest User

Untitled

a guest
Jun 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. import pandas as pd
  2. import time
  3.  
  4. df = pd.read_excel("Main Data File - Copy.XLSX").dropna()
  5. superviserData = df.groupby(["Supv-pernr", "Supv-Name", "Supv Level"]).groups.keys()
  6. supervisers = df["Supv-pernr"].unique().tolist()
  7. supervisers.remove("A")
  8.  
  9. def countBelowLevel(perner):
  10. global counts
  11. totalCount = 0
  12. if counts.has_key(perner):
  13. totalCount += counts[perner]
  14. else:
  15. belowLevels = list(df[df["Supv-pernr"] == perner]["Perner"])
  16. totalCount += len(belowLevels)
  17. for b in belowLevels:
  18. counts[b] = countBelowLevel(b)
  19. totalCount += counts[b]
  20. return totalCount
  21.  
  22. t1 = time.time()
  23. counts = {}
  24. for s in supervisers:
  25. counts[s] = countBelowLevel(s)
  26. print(time.time() - t1)
  27.  
  28. supvPernr = []
  29. supvName = []
  30. supvLevel = []
  31. count = []
  32. for tpl in superviserData:
  33. if tpl[0] == "A":
  34. belowLevels = list(df[(df["Supv-pernr"] == tpl[0]) & (df["Supv-Name"] == tpl[1])]["Perner"])
  35. totalCount = 0
  36. for b in belowLevels: totalCount += counts[b]
  37. count.append(totalCount + 1)
  38. elif tpl[0] in supvPernr:
  39. continue
  40. else:
  41. count.append(counts[tpl[0]] + 1)
  42. supvPernr.append(tpl[0])
  43. supvName.append(tpl[1])
  44. supvLevel.append(tpl[2])
  45.  
  46. pd.DataFrame({
  47. "Supv-pernr": supvPernr,
  48. "Supv-Name": supvName,
  49. "Supv-Level": supvLevel,
  50. "Followers": count
  51. })[["Supv-pernr", "Supv-Name", "Supv-Level", "Followers"]].to_excel("result.xlsx", index=False)
Add Comment
Please, Sign In to add comment