Использование DataFrame.pivot_table
:
new_df=df.pivot_table(index='Brand',columns='AssociatedWord',values='Weight',fill_value=0).reset_index()
print(new_df)
AssociatedWord Brand grey pink red yellow
0 coke 5 2 5 0
1 pepsi 0 0 10 3
Примечание : AssociatedWord - это имя столбца, который можно изменитьэто используя:
new_df.columns.name=None
Brand grey pink red yellow
0 coke 5 2 5 0
1 pepsi 0 0 10 3
Также вы можете использовать set_index
+ unstack
:
new_df=df.set_index(['Brand','AssociatedWord']).unstack(fill_value=0).reset_index()
print(new_df)
new_name Brand Weight
AssociatedWord grey pink red yellow
0 coke 5 2 5 0
1 pepsi 0 0 10 3