透視表,根據一個或多個鍵進行聚合,并根據行列上的分組鍵将資料配置設定到各個矩形區域中.
number
one
two
three
state
ohio
1
2
color
3
4
5
前兩個參數分别作用于行和列的索引,最後一個參數用于填充dataframe的資料列的列名
首先,它會設定一個新的索引( set_index() ),然後對索引排序( sort_index() ),最後調用 unstack 。以上的步驟合在一起就是 pivot 。
官方定義:
DataFrame.pivot_table(data, values=None, index=None, columns=None, aggfunc=’mean’, fill_value=None, margins=False, dropna=True, margins_name=’All’)
data: DataFrame對象
values: 顯示的列的名字,可以應用aggfunc中的函數
index: 索引
columns: 可選的, 通過額外的方法來分割你所關心的實際值,然而aggfunc被應用到values上, aggfunc預設的是mean
下面來看幹貨:
打開dat表,分别為users, ratings, movies
合并三個表:
最簡單的透視表必須有一個資料幀和一個索引
當然也可以建兩個index
可以看出和value的差別了嗎?colume的值作為列名了。
之後我們要drop掉NAN的資料,
其中官方dropna函數為DataFrame.dropna(axis=0, how=’any’, thresh=None, subset=None, inplace=False),其中axis : {0 or ‘index’, 1 or ‘columns’}, or tuple/list thereof
Pass tuple or list to drop on multiple axes,即axis=0表示删除行,axis=1表示删除列。
當然,也可以通過fillna将缺失值填充為所需要的。
之後我打算過濾掉評論不足250條的記錄,其中size()得到含有各個電影分組大小的serise對象。
得到的active_titles 是索引:
然後可以在mean_ratings中選擇我們所需要的行了
之後可以對female的評價執行降序排列
為了觀察男女差别最大的電影,可以加一列diff
對diff進行排序
男同志喜愛的電影
[::-1] 表示取反
回到小費資料集
小技巧,先畫出正題架構比如 columns 是列索引名, index是行索引名等