Hi I would like to group headers by specific key value for a list of dicts
my lists = [
{'rank': 2, 'keyword_name': 'mens wallet', 'volume': 456677, 'asin': 'B01MG0ORBL','parent': parent1
},
{'rank': 18, 'keyword_name': 'mens wallet', 'volume': 456677, 'asin': 'B0735C9RDZ','parent': parent1'
},
{'rank': 21, 'keyword_name': 'mens wallet', 'volume': 456677, 'asin': 'B07FPVR858','parent': 'parent2'
},
{'rank': 126, 'keyword_name': 'mens wallet', 'volume': , 'asin': 'B01MG0ORBL','parent': parent2'
},
{'rank': 128, 'keyword_name': 'mens wallet', 'volume': 456677, 'asin': 'B0735C9RDZ','parent': parent2'
},
{'rank': 136, 'keyword_name': 'mens wallet', 'volume': 456677, 'asin': 'B07FPVR858','parent': parent2'
},
{'rank': 19, 'keyword_name': 'leather wallets', 'volume': , 'asin': 'B0735C9RDZ','parent': parent2'
},
{'rank': 10, 'keyword_name': 'wallets for men', 'volume': 566, 'asin': 'B07FPVR858','parent': parent2'
},
{'rank': 16, 'keyword_name': 'wallets for men', 'volume': 566, 'asin': 'B0735C9RDZ','parent': parent2'
},
]
// Create dataframe and pivoting with lists
df = pd.DataFrame(my_lists)
df = df.pivot_table(index=['keyword_name','volume'],
columns='asin',
values='rank',
aggfunc=list)
print (df)
asin B01MG0ORBL B0735C9RDZ B07FPVR858
keyword_name volume
leather wallets 23 NaN [19] NaN
mens wallet 456677 [2, 126] [18, 128] [21, 136]
wallets for men 566 NaN [16] [10]
But what I need to achieve is to group header columns by key(parent) value where each asin inside each dict belongs to parent(key), like
parent1 parent2 parent3
asin B01MG0ORBL B0735C9RDZ B07FPVR858 xxxxxxxxx xxxxx xxxx xxx
keyword_name volume
leather wallets 23 NaN [19] NaN
mens wallet 456677 [2, 126] [18, 128] [21, 136]
wallets for men 566 NaN [16] [10]
Example desired output
Any Ideas?
