Pandas 基礎(13) - Crosstab 交叉列表取值
阿新 • • 發佈:2019-03-04
~~ ring 介紹 第一個 多看 clas 列表 ctu rac
這小節的題目看起來還挺晦澀的, crosstab 是 pandas 的一個函數, 作用還蠻強大的, 一起來看一下吧~~~
首先還是先引入一個例子文件:
import pandas as pd
df = pd.read_excel(‘/Users/rachel/Sites/pandas/py/pandas/13_crosstab/survey.xls‘)
df
輸出:
好, 下面看一下 crosstab 的功力:
pd.crosstab(df.Nationality, df.Handedness)
輸出:
crosstab 第一個參數是列, 第二個參數是行. 還可以添加第三個參數:
pd.crosstab(df.Sex, df.Handedness, margins = True)
輸出:
同時, 行和列都可以是復合的:
pd.crosstab(df.Sex, [df.Handedness, df.Nationality], margins = True)
輸出:
pd.crosstab([df.Nationality, df.Sex], df.Handedness, margins = True)
輸出:
ok, 上面介紹了 crosstab() 函數最基本的功能, 其實它還可以通過很多參數的配置實現不同的功能. 這裏分享一個小技巧, 把光標點到 crosstab 單詞書, 按下 shift + tab 鍵, 就可以彈出對這個函數的詳情, 主要是參數的使用說明, 發現真的還有好多參數啊, 下面再選兩個講一下:
求百分比:
pd.crosstab(df.Sex, df.Handedness, normalize=‘index‘)
輸出:
求指定列的平均值:
import numpy as np
pd.crosstab(df.Sex, df.Handedness, values=df.Age, aggfunc=np.average)
輸出:
最後一個參數看起來有點多, 有點復雜, 那也是因為我們剛開始接觸 crosstab 函數, 所以可以結合上面介紹的方法, 打開函數說明, 對照著裏面的參數用法, 多看幾遍 就懂了. 如果還有不明白, 就給我留言吧~~~~
Pandas 基礎(13) - Crosstab 交叉列表取值