2014-02-08 1 views
4

Я хочу создать сводную таблицу из базы данных pandas с использованием dataframe.pivot() и включать в себя не только столбцы данных, но и данные в индексе dataframe. Не удалось найти какие-либо документы, которые показывают, как это сделать. Любые советы?таблица pandas pivot с использованием индексных данных dataframe

+0

Пытались ли вы что-нибудь? Пожалуйста, по крайней мере, дайте минимальный пример для работы. – Xiphias

ответ

6

Используйте reset_index, чтобы сделать индексировать столбец:

In [45]: df = pd.DataFrame({'y': [0, 1, 2, 3, 4, 4], 'x': [1, 2, 2, 3, 1, 3]}, index=np.arange(6)*10) 

In [46]: df 
Out[46]: 
    x y 
0 1 0 
10 2 1 
20 2 2 
30 3 3 
40 1 4 
50 3 4 

In [47]: df.reset_index() 
Out[47]: 
    index x y 
0  0 1 0 
1  10 2 1 
2  20 2 2 
3  30 3 3 
4  40 1 4 
5  50 3 4 

Таким образом, ось использует индекс как значения:

In [48]: df.reset_index().pivot(index='y', columns='x') 
Out[48]: 
    index   
x  1 2 3 
y    
0  0 NaN NaN 
1 NaN 10 NaN 
2 NaN 20 NaN 
3 NaN NaN 30 
4  40 NaN 50  
+0

Спасибо, работает как описано. – user3276418

Смежные вопросы