Guest User

Untitled

a guest
Nov 19th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. import json
  2. import pandas as pd
  3.  
  4. df = pd.read_csv('txn_data.csv')
  5.  
  6. def get_nested_rec(key, grp):
  7. rec = {}
  8. rec['date'] = key[0]
  9. rec['name'] = key[1]
  10. rec['value'] = key[2]
  11.  
  12. for field in ['name','value']:
  13. rec[field] = list(grp[field].unique())
  14.  
  15. return rec
  16.  
  17. records = []
  18. for key, grp in df.groupby(['date']):
  19. rec = get_nested_rec(key, grp)
  20. records.append(rec)
  21.  
  22. records = dict(data = records)
  23.  
  24. print(json.dumps(records, indent=4))
  25.  
  26. date,name,value
  27. 1/1/13,Quick Serve,304127
  28. 1/1/13,Restaurant,1843286
  29. 1/1/13,Retail,239675
  30. 1/2/13,Quick Serve,422847
  31. 1/2/13,Restaurant,1582848
  32. 1/2/13,Retail,394358
  33.  
  34. desired_output = [
  35. {
  36. "date":"2017-01-01",
  37. "details":[
  38. {
  39. "name":"Retail",
  40. "value":9192
  41. },
  42. {
  43. "name":"Restaurant",
  44. "value":6753
  45. },
  46. {
  47. "name":"Quickserve",
  48. "value":1219
  49. }
  50. ]
  51. },
  52. {
  53. "date":"2017-02-01",
  54. "details":[
  55. {
  56. "name":"Retail",
  57. "value":9192
  58. },
  59. {
  60. "name":"Restaurant",
  61. "value":6753
  62. },
  63. {
  64. "name":"Quickserve",
  65. "value":1219
  66. }
  67. ]
  68. }
  69. ]
  70.  
  71. {
  72. "data": [
  73. {
  74. "date": "1",
  75. "name": [
  76. "Automotive",
  77. "Durable Goods",
  78. "Entertainment",
  79. "Food",
  80. "Lodging",
  81. "Petroleum",
  82. "Quick Serve",
  83. "Restaurant",
  84. "Retail",
  85. "Service",
  86. "Transportation & Utilities",
  87. "Unknown"
  88. ],
  89. "value": [
  90. 91406,
  91. 9889,
  92. 172676,
  93. 358922,
  94. 63502,
  95. 1982048,
  96. 304127,
  97. 1843286,
  98. 239675,
  99. 106462,
  100. 25924,
  101. 909
  102. ]
  103. },
  104. {
  105. "date": "1",
  106. "name": [
  107. "Automotive",
  108. "Durable Goods",
  109. "Entertainment",
  110. "Food",
  111. "Lodging",
  112. "Petroleum",
  113. "Quick Serve",
  114. "Restaurant",
  115. "Retail",
  116. "Service",
  117. "Transportation & Utilities",
  118. "Unknown"
  119. ],
  120. "value": [
  121. 146041,
  122. 33090,
  123. 103159,
  124. 336956,
  125. 66726,
  126. 2191346,
  127. 422847,
  128. 1582848,
  129. 394358,
  130. 339989,
  131. 49477,
  132. 494
  133. ]
  134. }
  135. ]
  136. }
Add Comment
Please, Sign In to add comment