高手如何做資料分析?這11招是你應該具備的技能

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

菜鳥獨白

用Python來玩轉資料分析實在是太爽了,因為有強大的Pandas來處理資料非常方便,我個人對資料分析情有獨鍾,探索資料的祕密非常好玩!前段時間寫過一篇小白學資料分析入門招式,但是進階的部分上次沒有來得及整理,今天分享給大家。

我們依然用比較有名的泰坦尼克資料集來做示例,通過對這個資料集的處理,來快速上手資料分析的常見招式和基本手法,讓初學者可以快速上手資料分析!

clipboard.png

要點:

資料的字元處理
資料的過濾
資料的分組
資料的透視表

1.資料集的字元處理

第一招:對列的處理

我們看一下這個資料集裡面的列都是英文的,不是很爽,我們把列的名字變成中文,這樣看的舒服。

clipboard.png

df.rename(columns={‘Survived’:’是否獲救’,

‘Name’:’姓名’,

‘Pclass’:’船艙等級’,’Sex’:’性別’,

‘Age’:’年齡’,’SibSp’:’兄弟姐妹數’,

‘Parch’:’父母小孩數’,’Ticket’:’船票’,

‘Fare’:’船票費’})

這樣處理完之後看一下是不是舒服很多:

clipboard.png

第二招:對資料集裡面的特定字串進行替換

我們把性別裡面的male替換為男,female替換為女

df[‘性別’].map({‘female’:’女’,’male’:’男’})

clipboard.png

第三招:對列的字元進行替換

我們看到船票比如A/5 21171 有兩部分組成,一部分是英文字元,一部分是純數字,如果我們只想保留數字部分,我們直接用str字串進行處理

df[‘船票’]=df[‘船票’].str.replace(r’1‘,”)

df.head(3)

clipboard.png

pandas裡面的字串功能非常強大,除了replace之外,

還有contains,split,match,findall,endswith等等,這招在清洗資料的非常有用。

2.資料集的過濾

我們在分析資料的時候經常要對資料內容進行過濾,或者是部分提取。

第四招:用邏輯表示式組合過濾

提取性別是女孩並且年齡在10歲以下的

df[(df[‘性別’]==’女’)&(df[‘年齡’]<=10)]

df.head(3)

clipboard.png

第五招:巧用不等於

提取非3等艙,並且獲救乘客資訊

df[(df[‘是否獲救’]==1)&(df[‘船艙等級’]!=3)]

clipboard.png

第六招:也可以用query函式

df.query(‘船艙等級==[1,2]’)

clipboard.png

3.資料的分類

我們有的時候需要對資料進行多維度的細分和統計,有下面幾招:

第七招:用where函式

第一種比較簡單,用where

比如我們認為比如我們認為 年齡在18以下都是未成年,18歲以上成年的

df[‘是否成年’]=np.where(df[‘年齡’]>=18,’成年’,’未成年’)

df.sample(3)

clipboard.png

第八招:用萬能的apply函式

apply可以處理比較複雜的邏輯,比如我們把年齡劃分為幾個階段,小孩,青年,成人,老人。

clipboard.png

看一下新增的列”年齡分類”是不是層次分類更精準!

clipboard.png

4.資料的切片和透視表

第九招:神奇的groupby函式

我們喜歡對資料按照某種類別分組統計:

1).從性別的維度來對是否獲救的人數進行統計

df.groupby(‘性別’)[‘是否獲救’].count()

性別

女 314

男 577

Name: 是否獲救, dtype: int64

2).從船艙的等級來看是非獲救

df.groupby(‘船艙等級’)[‘是否獲救’].count()

船艙等級

1 216

2 184

3 491

Name: 是否獲救, dtype: int64

第十招:對資料進行軸切片分析

比如我們希望對是非獲救和船艙等級這個兩個軸進行深入切片分析,這樣的伎倆在R語言裡面也經常用到,這裡pandas給我們提供了非常方便的agg函式

df.groupby([‘是否獲救’,’船艙等級’])[‘年齡’].agg([‘size’,’max’,’min’,’mean’])

clipboard.png

這樣就很容易發現,獲救裡面的頭等艙的人比較多,平均年齡相對未獲救的要年輕不少.

第十一招:資料透視表

透視表在很多資料分析裡面都有,比如常見的excel裡面,pandas也提供了類似的功能.

根據一個或者多個鍵對資料進行聚合,我們用透視表也能做出類似上面的功能,比groupby還要強大.

df.pivot_table(columns=[‘性別’],

index=[‘是否獲救’,’船艙等級’],

values=’年齡’,

aggfunc={‘年齡’:[np.mean,min,max]})

clipboard.png

看完上面的11招,加上前面的(18招,小白必看的資料分析招式|精選上篇),學會這些招數基本上可以算是入門資料分析了。

當然如果需要對資料分析進行系統的學習,還需要掌握很多其他的知識,如有不同見解,我在評論區等著你。

本文作者:雁橫
閱讀原文
本文為雲棲社群原創內容,未經允許不得轉載。


d

相關文章

人工智慧 最新文章