2017-02-01 17 views
1

В настоящее время у меня есть фреймворк данных, который является многоуровневым, причем первый уровень заголовка - это название компании, а второй уровень - дата, размер и точка для этого соответствующая компания. Я хочу установить индекс как дату, поэтому на втором уровне больше нет даты.У меня есть дата-кадр, который многоуровневый, как установить дату на втором уровне как общий индекс

ответ

0

Я думаю, что вам нужно set_index кортежей, для переименования index names использования 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 

Редактируйте комментарием:

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 
+0

Но есть несколько имен? Нужно ли мне устанавливать Кортеж каждого индивидуального имени? – MysterioProgrammer91

+0

Да, точно. См. Править. – jezrael

+0

Однако у меня более 1000 имен есть, не указав каждое индивидуальное имя? – MysterioProgrammer91