Вы всегда получаете MultiIndex
, потому что нет параметра values
с одним значением:
df = data.pivot_table(index='customer_id',
columns='var_name',
fill_value=0,
aggfunc='max')
#columns names of first level are not removed
df.columns = df.columns.map('_'.join)
#first level removed, but possible duplicated columns names, so not recommended
#df.columns = df.columns.droplevel(0)
df = df.reset_index()
Если скаляр в value
(обрабатывает только один столбец):
df = data.pivot_table(index='customer_id',
columns='var_name',
fill_value=0,
values='age',
aggfunc='max')