Advertisement
Guest User

Untitled

a guest
May 31st, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. d=[['7500', '3.2900', '0', 'apple'],['7500', '-0.3500', '1', 'orange'],['7500', '-4.1400', '2', 'orange'],['7501', '3.4625', '0', 'apple'],['7501', '-0.2275', '1', 'apple'],['7501', '-4.1175', '2', 'orange'],['7502', '3.2087', '0', 'orange'],['7502', '-0.7313', '1', 'apple'],['7502', '-4.7513', '2', 'apple']]
  2. df=pd.DataFrame(d, columns=["Frame","Z","Order","Name"])
  3.  
  4.  
  5. >>> df
  6. Frame Z Order Name
  7. 0 7500 3.2900 0 apple
  8. 1 7500 -0.3500 1 orange
  9. 2 7500 -4.1400 2 orange
  10. 3 7501 3.4625 0 apple
  11. 4 7501 -0.2275 1 apple
  12. 5 7501 -4.1175 2 orange
  13. 6 7502 3.2087 0 orange
  14. 7 7502 -0.7313 1 apple
  15. 8 7502 -4.7513 2 apple
  16.  
  17. (0,1)
  18. (0,2)
  19. (1,2)
  20.  
  21. (apple, orange)
  22. (apple, orange)
  23. (orange, orange)
  24.  
  25. ( 3.2900, -0.3500)
  26. ( 3.2900, -4.1400)
  27. (-0.3500, -4.1400)
  28.  
  29. (apple, orange)
  30. first_vals = [3.2900, 3.2900, ...]
  31. second_vals = [-0.3500, -4.1400, ...]
  32.  
  33. (orange, orange)
  34. first_vals = [-0.3500, ...]
  35. second_vals = [-4.140, ...]
  36.  
  37. from itertools import combinations
  38. from collections import defaultdict
  39.  
  40. zpairs = defaultdict(list)
  41.  
  42. for name, group in df.groupby(["Frame"]):
  43. order_pairs = combinations(range(len(group)), 2)
  44. zvals = group["Z"].values
  45. rowids = group["Name"].values
  46. for pair in order_pairs:
  47. pair_str = str(rowids[pair[0]])+"-"+str(rowids[pair[1]])
  48. zpairs[pair_str+"-first"].append(zvals[pair[0]])
  49. zpairs[pair_str+"-second"].append(zvals[pair[1]])
  50.  
  51. >>> dict(zpairs)
  52.  
  53. {'apple-apple-first': ['3.4625', '-0.7313'],
  54. 'apple-apple-second': ['-0.2275', '-4.7513'],
  55. 'apple-orange-first': ['3.2900', '3.2900', '3.4625', '-0.2275'],
  56. 'apple-orange-second': ['-0.3500', '-4.1400', '-4.1175', '-4.1175'],
  57. 'orange-apple-first': ['3.2087', '3.2087'],
  58. 'orange-apple-second': ['-0.7313', '-4.7513'],
  59. 'orange-orange-first': ['-0.3500'],
  60. 'orange-orange-second': ['-4.1400']}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement