I have the following dataframe
   t  input type  value
0  0      2    A    0.1
1  1      2    A    0.2
2  2      2    A    0.3
3  0      2    B    1.0
4  1      2    B    2.0
5  2      2    B    3.0
6  0      4    A    1.0
7  2      4    A    2.0
8  0      4    B    1.0
9  1      4    B    1.0
and I want to transform it to the following form
 t  input    A  B
0  0      2  0.1  1
1  1      2  0.2  2
2  2      2  0.3  3
3  0      4    1  1
4  1      4       1
5  2      4    1   
I started by grouping the contents of the dataframe based on 'type'. I am not sure how to proceed next.
Code:
import pandas as pd
from pprint import pprint
if __name__ == '__main__':
    d = {
        't': [0, 1, 2, 0, 1, 2, 0, 2, 0, 1],
        'input': [2, 2, 2, 2, 2, 2, 4, 4, 4, 4],
        'type': ['A', 'A', 'A', 'B', 'B', 'B', 'A', 'A', 'B', 'B'],
        'value': [0.1, 0.2, 0.3, 1, 2, 3, 1, 2, 1, 1],
    }
    df = pd.DataFrame(d)
    pprint(df)
    frames = {}
    for c in df.type.unique():
        frames[c] = df.copy()[df.type == c]
    pprint(frames)
    # expected output
    d_out = {
        't': [0, 1, 2, 0, 1, 2],
        'input': [2, 2, 2, 4, 4, 4],
        'A': [0.1, 0.2, 0.3, 1, '', 1],
        'B': [1, 2, 3, 1, 1, ''],
    }
    df_out = pd.DataFrame(d_out)
    pprint(df_out)
Suggestions on how to transform df to df_out will be really helpful.
EDIT: I tried
df_piv = df.pivot(['t', 'input'], 'type', 'value')
df_piv >
type       A    B
t input          
0 2      0.1  1.0
  4      1.0  1.0
1 2      0.2  2.0
  4      NaN  1.0
2 2      0.3  3.0
  4      2.0  NaN
I would like to know how to change the above to
t input  A    B        
0 2      0.1  1.0
0 4      1.0  1.0
1 2      0.2  2.0
1 4      NaN  1.0
2 2      0.3  3.0
2 4      2.0  NaN
