Reputation: 161
meet the problem of changing values and columns names,
for example i have such Pandas dataframe:
Value 2013 2014 Company Name
1 Employees 10 12 Aviators
2 Computers 20 2 Aviators
3 Employees 4 13 Mouses
4 Computers 1 8 Mouses
5 Monitors 5 1 Mouses
and i need to make values as colums and years as values or indexes (values better) smth like this:
Employees Computers Monitors Company name
2013 10 20 NaN Aviators
2014 12 2 NaN Aviators
2013 4 1 5.0 Mouses
2014 13 8 1.0 Mouses
So i need only change years and values, company Name column should be placed like on the sample
What's the easiest way to do it?
Upvotes: 0
Views: 48
Reputation: 42916
Using pivot_table
with stack
:
df = df.pivot_table(index=['Company Name'],
columns='Value',
aggfunc='sum').stack(level=0).reset_index(level=0)
Value Company Name Computers Employees Monitors
2013 Aviators 20.0 10.0 NaN
2014 Aviators 2.0 12.0 NaN
2013 Mouses 1.0 4.0 5.0
2014 Mouses 8.0 13.0 1.0
To remove the column index name, use rename_axis
:
df = df.rename_axis(None, axis='columns')
Company Name Computers Employees Monitors
2013 Aviators 20.0 10.0 NaN
2014 Aviators 2.0 12.0 NaN
2013 Mouses 1.0 4.0 5.0
2014 Mouses 8.0 13.0 1.0
Upvotes: 2