Использование:
df = df.set_index('Term', append=True)['value'].unstack()
Или:
df = pd.pivot(df.index, df['Term'], df['value'])
print (df)
Term 1 2 3
Name
A 35 40 50
B 20 45 50
РЕДАКТИРОВАТЬ: Если дубликаты попарно Name
с Term
, то необходимо объединение, например, sum
или mean
:
df = df.groupby(['Name','Term'])['value'].sum().unstack(fill_value=0)