Противоположность melt в панд python
Я не могу понять, как сделать "обратный расплав" с помощью панд в python. Это мои стартовые данные
import pandas as pd
from StringIO import StringIO
origin = pd.read_table(StringIO('''label type value
x a 1
x b 2
x c 3
y a 4
y b 5
y c 6
z a 7
z b 8
z c 9'''))
origin
Out[5]:
label type value
0 x a 1
1 x b 2
2 x c 3
3 y a 4
4 y b 5
5 y c 6
6 z a 7
7 z b 8
8 z c 9
это выход, который я хотел бы иметь:
label a b c
x 1 2 3
y 4 5 6
z 7 8 9
Я уверен, что существует простой способ сделать это, но я не знаю как.
1 ответов
есть несколько способов;
используя .pivot
:
>>> origin.pivot(index='label', columns='type')['value']
type a b c
label
x 1 2 3
y 4 5 6
z 7 8 9
[3 rows x 3 columns]
используя pivot_table
:
>>> origin.pivot_table(values='value', index='label', columns='type')
value
type a b c
label
x 1 2 3
y 4 5 6
z 7 8 9
[3 rows x 3 columns]
или .groupby
следовал по .unstack
:
>>> origin.groupby(['label', 'type'])['value'].aggregate('mean').unstack()
type a b c
label
x 1 2 3
y 4 5 6
z 7 8 9
[3 rows x 3 columns]