Pandas 基礎(13) - Crosstab 交叉列表取值


這小節的題目看起來還挺晦澀的, 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 函數, 所以可以結合上面介紹的方法, 打開函數說明, 對照着里面的參數用法, 多看幾遍 就懂了. 如果還有不明白, 就給我留言吧~~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM