I essentially wish to break down a dataframe by splicing and creating a wide format, but also adding additional logic
here is the data
year quarter Date Location ID Role Type alias box status
2025 Q1 2025 2025-01-01 NY aa Growth iaa 5 WIP
2025 Q1 2025 2025-01-01 NY aa Total iaa 5 WIP
2025 Q1 2025 2025-01-01 NY bb Growth ibb 0.633259 WIP
2025 Q1 2025 2025-01-01 NY bb Total ibb 0.633259 WIP
2025 Q1 2025 2025-01-01 CA aa Total iaa 0 WIP
2025 Q1 2025 2025-01-01 CA bb Total ibb 0 WIP
2025 Q2 2025 2025-04-01 NY aa Growth iaa 2.298517 WIP
2025 Q2 2025 2025-04-01 NY aa Refresh iaa 0.889888 WIP
2025 Q2 2025 2025-04-01 NY aa Total iaa 3.188404 WIP
2025 Q2 2025 2025-04-01 NY bb Growth ibb 0.546924 WIP
2025 Q2 2025 2025-04-01 NY bb Refresh ibb 0.590793 WIP
2025 Q2 2025 2025-04-01 NY bb Total ibb 1.137717 WIP
2025 Q2 2025 2025-04-01 CA aa Growth iaa 0.732325 WIP
2025 Q2 2025 2025-04-01 CA aa Total iaa 0.732325 WIP
2025 Q2 2025 2025-04-01 CA bb Growth ibb 0.122307 WIP
2025 Q2 2025 2025-04-01 CA bb Refresh ibb 0.093777 WIP
2025 Q2 2025 2025-04-01 CA bb Total ibb 0.216083 WIP
Desired
Location Type Role alias Q1 2025 Q2 2025
NY Growth iaa aa 5 2.298517
NY Growth ibb bb 0.633259 0.546924
NY Refresh iaa aa 0 0.889888
NY Refresh ibb bb 0 0.590793
NY Total iaa aa 5 3.188404
NY Total ibb bb 0.633259 1.137717
CA Growth iaa aa 0 0.732325
CA Growth ibb bb 0 0.122307
CA Refresh iaa aa 0 0
CA Refresh ibb bb 0 0.093777
CA Total iaa aa 0 0.732325
CA Total ibb bb 0 0.216083
Doing
pivot_df = result_df.pivot_table(index=['Location', 'Type', 'Role', 'alias'],
columns='quarter', values='Racks', fill_value=0).reset_index()
Logic:
Creating a pivot table and each location must have Growth Refresh and Total. If there are no values provided for either Growth, Refresh or Total, just input 0. The quarters should be columns
we are showing the growth, refresh and total for each role and alias
and location
However, this keep deleting some of my values.
Any suggestion is appreciated.