I currently have a dataframe which is multi level with first level of header being company name and the second level being the date, size and pice for that respective company. I want to set the index as date so in the second level there is no longer date.
I think you need set_index
by tuples, for rename index names
use rename_axis
:
print (df)
name
date size price
0 2014-01-08 0.7990 422.65
1 2014-01-09 0.8095 421.26
2 2014-01-10 0.8135 423.35
3 2014-01-13 0.8065 417.78
df = df.set_index(('name','date')).rename_axis(None)
print (df)
name
size price
2014-01-08 0.7990 422.65
2014-01-09 0.8095 421.26
2014-01-10 0.8135 423.35
2014-01-13 0.8065 417.78
EDIT by comment:
print (df.set_index([('name','date'), ('name','size')]))
name
price
(name, date) (name, size)
2014-01-08 0.7990 422.65
2014-01-09 0.8095 421.26
2014-01-10 0.8135 423.35
2014-01-13 0.8065 417.78
df = df.set_index([('name','date'), ('name','size')]).rename_axis(('date', 'size'))
print (df)
name
price
date size
2014-01-08 0.7990 422.65
2014-01-09 0.8095 421.26
2014-01-10 0.8135 423.35
2014-01-13 0.8065 417.78