I've a sample pivoted data using pandas pivot_table()
df = pd.DataFrame([['USA', 'LA', 'April', 2, '1:2'],
['USA', 'FL', 'April', 5, '5:6'],
['USA', 'TX', 'April', 7, '1:3'],
['Canada', 'Ontario', 'April', 2, '1:3'],
['Canada', 'Toronto', 'April', 3, '1:5'],
['USA', 'LA', 'May', 3, '4:5'],
['USA', 'FL', 'May', 6, '4:5'],
['USA', 'TX', 'May', 2, '1:4'],
['Canada', 'Ontario', 'May', 6, '8:9'],
['Canada', 'Toronto', 'May', 9, '3:4']],
columns=['Country', 'Cities', 'month', 'Count', 'Ratio'])
mux1 = pd.MultiIndex.from_product([data['month'].unique(), ['Count', 'Ratio']])
data = data.pivot_table(columns=['month'], values=['Count', 'Ratio'], index=['Country', 'Cities']).swaplevel(1, 0, axis=1).reindex(mux1, axis=1)
April May
Count Ratio Count Ratio
Country Cities
USA LA 2 1:2 3 4:5
FL 5 5:6 6 4:5
TX 7 1:3 2 1:4
Canada Ontario 2 1:3 6 8:9
Toronto 3 1:5 9 3:4
How could I repeat my row labels in the pivot data which looks like below and export it as excel
?
April May
Count Ratio Count Ratio
Country Cities
USA LA 2 1:2 3 4:5
USA FL 5 5:6 6 4:5
USA TX 7 1:3 2 1:4
Canada Ontario 2 1:3 6 8:9
Canada Toronto 3 1:5 9 3:4
I've tried pd.option_context('display.multi_sparse', False)
, as it only display the content, it does not export data as excel.