2016-07-05 2 views
1

У меня есть следующие панды DataFrame.Как «рассортировать» данные в пандах?

import pandas as pd 
df = pd.read_csv('filename.csv') 

print(df) 

    time  Group  blocks 
0  1  A   4 
1  2  A   7 
2  3  A   12 
3  4  A   17 
4  5  A   21 
5  6  A   26 
6  7  A   33 
7  8  A   39 
8  9  A   48 
9  10  A   59 
    ....  ....   .... 
36  35  A   231 
37  1  B   1 
38  2  B   1.5 
39  3  B   3 
40  4  B   5 
41  5  B   6 
    ....  ....   .... 
911 35  Z   349 

Это dataframe с данными несколько временных рядов-эск, от min=1 до max=35. Каждый Group имеет отношение в диапазоне time=1 к time=35.

Я хотел бы сегмент этой dataframe в столбцы группы А, группы В, группы С и т.д.

Как один «unconcatenate» это dataframe?

+0

Так хочется иметь 26 столбцов в конце? –

+0

@JoeR Да, это правильно – ShanZhengYang

+0

Итак, ответ @MaxU должен работать на вас. –

ответ

2

это то, что вы хотите?

In [84]: df.pivot_table(index='time', columns='Group') 
Out[84]: 
     blocks 
Group  A B 
time 
1  4.0 1.0 
2  7.0 1.5 
3  12.0 3.0 
4  17.0 5.0 
5  21.0 6.0 
6  26.0 NaN 
7  33.0 NaN 
8  39.0 NaN 
9  48.0 NaN 
10  59.0 NaN 
35  231.0 NaN 

данные:

In [86]: df 
Out[86]: 
    time Group blocks 
0  1  A  4.0 
1  2  A  7.0 
2  3  A 12.0 
3  4  A 17.0 
4  5  A 21.0 
5  6  A 26.0 
6  7  A 33.0 
7  8  A 39.0 
8  9  A 48.0 
9  10  A 59.0 
36 35  A 231.0 
37  1  B  1.0 
38  2  B  1.5 
39  3  B  3.0 
40  4  B  5.0 
41  5  B  6.0 
Смежные вопросы