I have a DataFrame with the following columns and no duplicates:
[\'region\', \'type\', \'name\', \'value\']
that can be seen as a hierarchy as
Something along these lines might get you there.
from collections import defaultdict
tree = lambda: defaultdict(tree) # a recursive defaultdict
d = tree()
for _, (region, type, name, value) in df.iterrows():
d['children'][region]['name'] = region
...
json.dumps(d)
A vectorized solution would be better, and maybe something that takes advantage of the speed of groupby, but I can't think of such a solution.
Also take a look at df.groupby(...).groups
, which return a dict.
See also this answer.
Here's another script to take a pandas df and output a flare.json file: https://github.com/andrewheekin/csv2flare.json