2016-08-02 2 views
2

у меня есть dataframe:панды pivot_table держать индекс

day_bucket label numeric_value 
0 2011-01-21 birds    4 
1 2011-01-22 birds    0 
2 2011-01-23 birds    7 
3 2011-01-24 birds    3 

Я хочу, чтобы повернуть эту dataframe так, что у меня есть столбец birds со значениями ниже него.

pd.pivot_table(df, values='numeric_value', index='day_bucket',columns='label') 

дает:

label  birds 
day_bucket    
2011-01-21 4 
2011-01-22 0 
2011-01-23 7 
2011-01-24 3 

, что я должен сделать сохранить индекс? Результат будет выглядеть так:

day_bucket birds  
0 2011-01-21 4 
1 2011-01-22 0 
2 2011-01-23 7 
3 2011-01-24 3 
+0

pivot_table дает агрегированные результаты. Таким образом, разные индексы могут быть объединены. Как вы собираетесь их хранить? Для обычного индекса вы можете просто вызвать 'reset_index()' в конце. – ayhan

ответ

3

set_index с append

df.set_index(['day_bucket', 'label'], append=True) \ 
    .rename_axis([None, None, None]).squeeze().unstack() 

enter image description here

1

В то же время я также пришел с результатом

pd.pivot_table(df, values='numeric_value', index=[df.index.values,'day_bucket'],columns='label').reset_index('day_bucket') 

label day_bucket mortality_birds 
0  2011-01-21    4 
1  2011-01-22    0 
2  2011-01-23    7 
3  2011-01-24    3 
Смежные вопросы