I have a dataframe which looks like:
df = pd.DataFrame(
    {
        "id": [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
        "mod": ["a", "a", "b", "b"] * 4,
        "qid": [11, 12, 13, 14] * 4,
        "ans": ["Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L", "K"],
    }
)
df
    id  mod qid ans
0   1   a   11  Z
1   1   a   12  Y
2   1   b   13  X
3   1   b   14  W
4   2   a   11  V
5   2   a   12  U
6   2   b   13  T
7   2   b   14  S
8   3   a   11  R
9   3   a   12  Q
10  3   b   13  P
11  3   b   14  O
12  4   a   11  N
13  4   a   12  M
14  4   b   13  L
15  4   b   14  K
Each value of qid fits within mod entirely. E.g., qid = 11 only occurs in mod = a.
I'd like to reshape the data into wide format, with mod and qid as column levels:
         a       b
    11  12  13  14
id              
1   Z   Y   X   W
2   V   U   T   S
3   R   Q   P   O
4   N   M   L   K
Is this possible in Pandas? I've tried pivot() with no luck.
 
    