我已經使用這個索引和重塑完成:
df = DataFrame({'zipcode':[20110,20110,20111,20111,20111], 'room_type': ['bed','sofa', 'bed','bed','sofa']})
df.set_index(['zipcode', 'room_type'], inplace=True)
df
zipcode room_type
20110 bed
sofa
20111 bed
bed
sofa
# count the values and generate a new dataframe
df2 = DataFrame(df.index.value_counts(), columns=['count'])
df2.reset_index(inplace=True)
df2
index count
0 (20111, bed) 2
1 (20110, bed) 1
2 (20111, sofa) 1
3 (20110, sofa) 1
# split the tuple into new columns
df2[['zipcode', 'room_type']] = df2['index'].apply(Series)
df2.drop('index', axis=1, inplace=True)
# reshape
df2.pivot(index='zipcode', columns='room_type', values='count')
room_type bed sofa
zipcode
20110 1 1
20111 2 1