2015-11-12 6 views
1

Я хотел бы помочь вам разобраться, как развернуть pandas dataframe в таблицу с заданным списком индексов и столбцов (вместо поведения по умолчанию, где индексы и столбцы автоматически выбирается пандами). Извините, если это тривиально. Я новичок в python/pandas.Pandas pivot_table с использованием заданного списка индексов и столбцов

Рассмотрим следующий dataframe:

import pandas 
import numpy as np 
import datetime 
data = { 
'ticker' : np.array(['AAPL', 
       'AAPL', 
       'IBM', 
       'XOM']), 
       'trade_date' : np.array([datetime.datetime(2015,01,01), 
            datetime.datetime(2015,04,02), 
            datetime.datetime(2099,01,01), 
            datetime.datetime(2015,03,01)]), 
      'price' : np.array([10.0, 15.6, 20.9, 13.5]) 
    } 
x = pandas.DataFrame(data) 

Upon pivot_table,

x.pivot_table(values = "price", index = "trade_date", columns = "ticker") 

результат является:

ticker  AAPL IBM XOM 
trade_date     
2015-01-01 10.0 NaN NaN 
2015-03-01 NaN NaN 13.5 
2015-04-02 15.6 NaN NaN 
2099-01-01 NaN 20.9 NaN 

Однако, что я хочу:

ticker  A AA AAPL IBM XOM 
trade_date     
2015-01-01 NaN NaN 10.0 NaN NaN 
2015-01-02 NaN NaN NaN NaN NaN 
2015-03-01 NaN NaN NaN NaN 13.5 
2015-04-02 NaN NaN 15.6 NaN NaN 
2099-01-01 NaN NaN NaN 20.9 NaN 

В pivot_table() отсутствуют какие-либо положения для принудительного набора индексов и столбцов.

Есть ли быстрый способ сделать это? Наборы данных довольно велики, и это поможет сделать это быстро.

ответ

2

Я переиндексации после поворота:

In [11]: df = x.pivot_table(values = "price", index = "trade_date", columns = "ticker") 

In [12]: df 
Out[12]: 
ticker  AAPL IBM XOM 
trade_date 
2015-01-01 10.0 NaN NaN 
2015-03-01 NaN NaN 13.5 
2015-04-02 15.6 NaN NaN 
2099-01-01 NaN 20.9 NaN 

In [13]: df.reindex_axis(["A", "AA", "AAPL", "IBM", "XOM"], axis=1) 
Out[13]: 
ticker  A AA AAPL IBM XOM 
trade_date 
2015-01-01 NaN NaN 10.0 NaN NaN 
2015-03-01 NaN NaN NaN NaN 13.5 
2015-04-02 NaN NaN 15.6 NaN NaN 
2099-01-01 NaN NaN NaN 20.9 NaN 
Смежные вопросы