2017-06-23 170 views
1

我有這個樣子創建大熊貓基於價值的唯一值的新列

zipcode room_type 
2011  bed 
2012  sofa 

每房源呈現一個製作的Airbnb上市行。我想彙總數據,以便計算所有的唯一值。每個獨特的值都有自己的列,數據按郵編分組。所以結果看起來像這樣:

zipcode bed sofa ground 
1011  200 36  20 
1012  720 45  89 

我怎樣才能得到熊貓這個結果?

回答

1

我已經使用這個索引和重塑完成:

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