0

I have a dataframe that looks like this: df

Out[262]: 
   klass       varde
0    1.0   53.801840
1    1.0   58.524591
2    1.0   51.879057
3    1.0   48.391662
4    1.0   48.451202
5    1.0   53.072189
6    1.0   55.418486
7    1.0   56.561995
8    1.0   59.161386
9    1.0   53.033094
0    1.0   52.438421
1    1.0   53.554198
2    1.0   38.968125
3    1.0   53.895055
4    1.0   55.335374
5    1.0   48.885893
6    1.0   48.173335
7    1.0   45.083425
8    1.0   50.846878
9    1.0   47.132339
0    2.0   88.804034
1    2.0  105.083136
2    2.0   96.204701
3    2.0   94.890052
4    2.0   90.846715
5    2.0   99.433425
6    2.0  113.972773
7    2.0   94.816123
8    2.0  114.141583
9    2.0   91.235912
0    2.0  104.331863
1    2.0  106.283919
2    2.0  105.769039
3    2.0   97.678197
4    2.0  106.136627
5    2.0   90.884468
6    2.0  104.920153
7    2.0   81.463938
8    2.0  107.859278
9    2.0   90.248085

I want to reshape the dataframe so that values 'varde' with same index and same value in column 'klass' are put beside each other like this:

klass       varde  varde
0    1.0   53.801840  52.438421
1    1.0   58.524591  53.554198
2    1.0   51.879057  38.968125
3    1.0   48.391662  53.895055
4    1.0   48.451202  55.335374
5    1.0   53.072189  48.885893
6    1.0   55.418486  48.173335
7    1.0   56.561995  45.083425
8    1.0   59.161386  50.846878
9    1.0   53.033094  47.132339
0    2.0   88.804034  104.331863
1    2.0  105.083136  106.283919
2    2.0   96.204701  105.769039
3    2.0   94.890052  97.678197
4    2.0   90.846715  106.136627
5    2.0   99.433425  90.884468
6    2.0  113.972773  104.920153
7    2.0   94.816123  81.463938
8    2.0  114.141583  107.859278
9    2.0   91.235912  0.248085

I'm really stuck on this...

Ch3steR
  • 20,090
  • 4
  • 28
  • 58

1 Answers1

0

We can stack several commands

>>> df.groupby(["id", "klass"])['varde'].apply(list).apply(pd.Series).reset_index()
    id  klass           0           1
0    0    1.0   53.801840   52.438421
1    0    2.0   88.804034  104.331863
2    1    1.0   58.524591   53.554198
3    1    2.0  105.083136  106.283919
4    2    1.0   51.879057   38.968125
5    2    2.0   96.204701  105.769039
6    3    1.0   48.391662   53.895055
7    3    2.0   94.890052   97.678197
8    4    1.0   48.451202   55.335374
9    4    2.0   90.846715  106.136627
10   5    1.0   53.072189   48.885893
11   5    2.0   99.433425   90.884468
12   6    1.0   55.418486   48.173335
13   6    2.0  113.972773  104.920153
14   7    1.0   56.561995   45.083425
15   7    2.0   94.816123   81.463938
16   8    1.0   59.161386   50.846878
17   8    2.0  114.141583  107.859278
18   9    1.0   53.033094   47.132339
19   9    2.0   91.235912   90.248085
crayxt
  • 2,367
  • 2
  • 12
  • 17