Если вы в порядке с пандами, сохраните данные в кадре данных (например, имя df
) и используйте:
pd.crosstab(df['id'],df['type']).rename_axis(None,axis=1)
Пример ниже:
import pandas as pd
d={'id': {0: 13, 1: 13, 2: 2, 3: 34, 4: 34, 5: 34},
'type': {0: 'A', 1: 'B', 2: 'A', 3: 'C', 4: 'A', 5: 'B'}}
df=pd.DataFrame(d)
print(df)
id type
0 13 A
1 13 B
2 2 A
3 34 C
4 34 A
5 34 B
Использование pd.crosstab()
df_new = pd.crosstab(df['id'],df['type']).rename_axis(None,axis=1).add_prefix('type@')
print(df_new)
type@A type@B type@C
id
2 1 0 0
13 1 1 0
34 1 1 1