这是我的数据
customer_id value
var_name Value_1 Value_2
0 1 70 80
我想成功
var_name customer_id Value_1 Value_2
0 1 70 80
我所做的是df.columns = ['customer_id', 'Value_1', 'Value_2']
,但这很容易出错,因为我有数百列
我猜怎么做?
答案 0 :(得分:1)
您始终获得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')