使用
Dataframe.unstack的重塑,只有必要时创建计数器通过
GroupBy.cumcount,第二级上次更改排序和按列扁平化多指标
map:
df = (df.set_index(['stores', df.groupby('stores').cumcount().add(1)]) .unstack() .sort_index(axis=1, level=1))df.columns = df.columns.map('{0[0]}_{0[1]}'.format)df = df.reset_index()print (df)stores discount_1 product_1 discount_2 product_2 discount_3 City of London T 102141.0 F 102142.0 T 1 Westminster T 102141.0 F 102142.0 NaN product_3 0 102143.0 1 NaN


