2015-10-21 6 views
0

Я пытаюсь сгенерировать временные ряды из dataframe, но решения, которые я нашел здесь, на самом деле не затрагивают мою конкретную проблему. У меня есть dataframe, который представляет собой ряд идентификаторов, которые итерацию от 1 до п, то повторить, как это:Преобразование pandas timeseries в таймсерии с индексом non-date

key     ID   Var_1 
    0     1   1 
    0     2   1 
    0     3   2 
    1     1   3 
    1     2   2 
    1     3   1 

Я хочу, чтобы изменить его в таймсериях, в котором индекс

    ID   Var_1_0  Var_2_0 
        1   1    3 
        2   1    2 
        3   2    1 

I попробовали метод stack(), но он не генерирует результат, который я хочу. Создание индекса из ID кажется правильным ID не является подходящей датой, поэтому я не уверен, как действовать. Указатели очень оценили.

ответ

1

Попробуйте это:

import pandas as pd 
df = pd.DataFrame([[0,1,1], [0,2,1], [0,3,2], [1,1,3], [1,2,2], [1,3,1]], columns=('key', 'ID', 'Var_1')) 

Используйте функцию поворота:

df2 = df.pivot('ID', 'key', 'Var_1') 

Вы можете переименовать столбцы:

df2.columns = ('Var_1_0', 'Var_2_0') 

Результат:

Out: 
Var_1_0 Var_2_0 
ID     
1   1  3 
2   1  2 
3   2  1 
Смежные вопросы