Python數據分析答疑6:Pandas進階

第六課作業

作業1:

計算每個品種鳶尾花各個屬性(花萼、花瓣的長度和寬度)的最小值、平均值又是分別是多少? (提示:使用min、mean 方法。)

計算鳶尾花每個品種的花萼長度(sepal_length) 大于6cm的數據個數。

作業2:

分別找出2015, 2016年最流行的前10個男孩和女孩名字, 想給自己起一個流行的英文名字的可以行動起來了。

提示:使用groupby().apply()

思路一,使用ranked這一列, 取其值小于等于10的數據

思路二,使用pct這一列,用sort_values方法對其排列大小,取最大的10行數據

選做作業:餐館小費數據分析

小費,指給予服務生消費額以外的賞錢,在美國餐館用餐完后通常會給服務生15-20%的小費。

這個數據是由Bryant和Smith于1995年所著的商務統計上的一個數據

分析什么因素會影響小費比例?

一個優秀的數據分析員一定是一個可以提出有意義問題的人

好的數據分析員往往可以根據商業背景提出一些假說,然后通過數據來驗證這些假說。

選做作業可以以文章的形式提交。



答疑Q&A目錄:

1,代碼運行出錯

2,數據導入

3,代碼方法

4,數據導入

5,代碼理解:max=None

6,參考書

7,代碼運行出錯:字典

8,代碼運行出錯

9,數據導入

10,數據導入

11,數據導入:path

12,代碼運行出錯

13,代碼理解:df[ ]

14,代碼理解:引號

15,代碼理解:圓括號

16,代碼理解:層次化索引

17,代碼理解:無效句法

18,代碼理解:unique

19,方法優化:設備同步代碼


第一問開始啦!!


圖1

Q 1 :請問:我做這個圖(圖1),為什么Africa,的紅色點沒有生成呢,標題里都生成了的.

A :ociean=df.....=='africa'漏改了


Q 2 :嬰兒數據導入不了,請問哪里出了問題

A1:我懷疑是目錄中含中文,改個path試試

A2: 我重新把文件復制到軟件默認目錄了,可以導入了


Q 3 :第五課選做作業中,把各大洲的國家數量用value_counts統計出來,生成的是一個series類型的結果,如何把這個series轉換成DataFrame進行分析?或者,如何提取這個series類型里的數據呢?比如,我要看哪個洲國家數量最多。

A:看下pandas中series提供方法,有idxmax和max。應該可以滿足你的需求,去了解下。


圖2


Q 4 :如何正確下載github上的文件?我以前下載文件都必須是點進去然后把內容全選復制到自己的txt文件里,因為每次直接下載的文件都是有問題的,如上圖(圖2),只有自己打開txt文件自己復制才行。其實我到現在也不知道github到底是怎么把資料完整下載到電腦里的,以前都是一個文件,這一次碰上這么多文件直接懵了,總不能一個一個打開然后再全選復制吧?

A1 : git hub官方有使用方法介紹的教程,可以查一下,可以用代碼把資料下到本地并且同步更新,也很快很便捷的。隔壁javascript課的徐老師做的教程供你參考一下。https://github.com/xugy0926/getting-started-with-javascript/wiki/%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%BD%BF%E7%94%A8Git

https://github.com/xugy0926/getting-started-with-javascript/blob/master/topics/%E5%A6%82%E4%BD%95%E4%BB%8E%E4%B8%BB%E9%A1%B9%E7%9B%AE%E6%9B%B4%E6%96%B0fork%E7%9A%84%E9%A1%B9%E7%9B%AE.md

A 2: 剛才按Polo老師的方法,輕松導入了。同學可以先把課件下載到自己的硬盤,在notebook里新建一文件夾,命名為names,點開后點upload按鈕,然后就可以選擇硬盤文件路徑,打開names文件夾全選,文件就全跑到notebook了,再逐一點txt文件的upload就OK了。


Q 5 :我自己實現了一下agg自帶的max函數。

有個問題是,之前老師有些max=None,但是這么寫報i和max不是一個類型。有點郁悶。

# 手動實現max

def manual_max(arr):

max = 0

for i in arr:

if (i > max):

max = i

return max

#manual_max(iris.sepal_length)

iris.groupby('species').agg({'sepal_length':[manual_max]})

A :對啊,不是一個類型,所以老師有個判斷

if max is None:

max = i

類似這樣的操作。


Q 6 :前面課中提到的關于數據分析的參考書是哪一本啊?

A :《利用python進行數據分析》


圖3

Q 7 :錯誤:If using all scalar values, you must pass an index。各位高手能看出原因嗎?生成不了DataFrame(圖3)

A :只有一列參數的不能生成字典,但是可以是series。關于字典合并的問題,可以編寫代碼實現。


圖4

Q 8 :每次重啟jupyter,定義過的函數找不到媽,所以有沒有什么很好用的句型,直接把函數套上?還是說最簡單的方法是找到最初定義的那一句,重復一遍?(圖4)

A1 :kernel那一欄有個restart and run all。run all了應該in[ ]每個框里都有數字序號的。

A2 : 因為你第一個錯了,后面的就不會執行了。word_count is not defined

A3 :iris.species.value_count( )


Q 9 :請問“名字name ”文件導入有特別的方法嗎?是每年逐一導入嗎?

A :使用for 循環 一塊導入每一年的文件,然后合并,成一個DATA


圖5

Q 10 :大數據如何導入到python?(圖5)

A1 : 文件是直接導入jupter notbook的,沒有放在names文件夾里,所以path=……里面names/去掉

A2 : 要把整個路徑都拷貝進去,我遇過跟你一樣的問題


圖6

Q 11 :數據導入的path在哪兒查?

A:如果是mac看我的截圖(圖6),jupternotebook的工作路徑mac可能是ducument下面,拷貝之后,后面再加上/names那些就可以了(就是文件名)。


圖8

Q 12 :請問使用plt.xlim為什么報錯'tuple' object is not callable呢?(圖8)

使用plt.ylim(0,9) 沒報錯。

A:不一定是ylim沒錯,可能只是運行到xlim報了錯就停了,類型是數組,確實沒錯,你看看之前的代碼對不對

Q追問 :我在老師的jupyter課件里執行plot.xlim沒報錯,自己新建了一個jupyter notebook文件執行plot.xlim 就報錯了,但plot.ylim就不報錯

A:把老師代碼里的plt.xlim()復制過來試試,沒問題的話,把你的xlim復制過去試試,有問題的話,就是你前面的錯誤了

Q追問:在我新建的里面執行我自己寫的xlim 和老師的xlim代碼都有問題,在老師建的jupyter里執行老師的xlim 和我自己寫的xlim都沒問題。然后我自己還寫了一個下圖在我自己里的有問題,在老師里的沒問題,所以可能是環境的問題而不是代碼的問題

A:%

%

那兩行你是不是漏打了。

新建一個試試

Q追問 :我重新建了一個后發現竟然不報錯了,看來可能是jupyter有點小bug


圖9

Q 13 :這個df[ ]是什么意思?(圖9)

A1: 取得一個表格,== 是一個判斷,values[values.country=='China'] 這個是一個布爾運算。意思就是1. 先得到一個過濾用的篩子;2. 用這個篩子 過濾出 series為 true 的那一行


圖10

Q 14 :內置函數要用字符串圈起來 max沒用雙引號也可以 但是 mean去掉雙引號就報錯了,為什么?(圖10)

A :因為max是python內置、pandas也支持的,mean不是Python內置的,但是pandas實現。agg中,pandas的內置,需用引號,而python內置的不需用引號。


圖11

Q 15 :這個返回值,我試了下 ,不帶括號也行 ,帶上圓括號也行,所以圓括號是種習慣嗎?(圖11)

A:python的內置和我們自定義的函數,對于pandas的agg函數是一樣的。return 習慣都是不帶括號吧,這應該是魚老師的習慣


圖12

Q 16 :series可以有兩個index嗎?(圖12)

A:對的,層次化索引


圖13

Q 17 :這里一直提示 America那里有一個 無效句法,但是我不知道問題在哪里?(圖13)

A :變量名不能有空格哦,可以用North_American代替North American


圖14

Q 18 :使用unique統計的時候,這里有空格。是因為這里不是變量名,是dadaframe的一個數值,所以允許?(圖14)

A :對的,解釋的非常對


Q 19 :我在辦公室運行的代碼,保存在Notebook里,請問有辦法 能把保存的內容同步到 家里的電腦上嗎?

A :直接把文件夾拷貝過去就好了。


最后兩個小彩蛋:

1,下圖(圖15)是Polo老師推薦的額外知識:關于python中的變量名和標識符

圖15


2,Tiger老師推薦文章:【鏈接】萬能的Python背后:這6大原因讓它爆火https://mp.weixin.qq.com/s/qgJt2ygmrhGhsXQwez5fFw



趕上進度!趕上進度!來!睡覺!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容