学python重点是什么_如果只有1小时学Python,看这篇就够了
大家好,我是大鵬,城市數據團聯合發起人,致力于Python數據分析、數據可視化的應用與教學。
和很多同學接觸過程中,我發現自學Python數據分析的一個難點是資料繁多,過于復雜。大部分網上的資料總是從Python語法教起,夾雜著大量Python開發的知識點,花了很多時間卻始終云里霧里,不知道哪些知識才是真正有用的。本來以為上手就能寫爬蟲出圖,卻在看基礎的過程中消耗了一周又一周,以至于很多勵志學習Python的小伙伴犧牲在了入門的前一步。
于是,我總結了以下一篇干貨,來幫助大家理清思路,提高學習效率。總共分為三大部分:做Python數據分析必知的語法,如何實現爬蟲,怎么做數據分析。1.必須知道的兩組Python基礎術語A.變量和賦值
Python可以直接定義變量名字并進行賦值的,例如我們寫出a=4時,Python解釋器干了兩件事情:在內存中創建了一個值為4的整型數據
在內存中創建了一個名為a的變量,并把它指向4
用一張示意圖表示Python變量和賦值的重點:
例如下圖代碼,“=”的作用就是賦值,同時Python會自動識別數據類型:a=4?#整型數據
b=2?#整型數據
c=“4”?#字符串數據
d=“2”?#字符串數據
print(“a+b結果為”,a+b)#兩個整數相加,結果是6
print(“c+d結果為”,c+d)#兩個文本合并,結果是文本“42”
#以下為運行結果
>>>a+b結果為?6
>>>c+d結果為?42請閱讀代碼塊里的代碼和注釋,你會發現Python是及其易讀易懂的。B.數據類型
在初級的數據分析過程中,有三種數據類型是很常見的:列表list(Python內置)
字典dic(Python內置)
DataFrame(工具包pandas下的數據類型,需要import pandas才能調用)
它們分別是這么寫的:
列表(list):#列表
liebiao=[1,2.223,-3,'劉強東','章澤天','周杰倫','昆凌',['微博','B站','抖音']]list是一種有序的集合,里面的元素可以是之前提到的任何一種數據格式和數據類型(整型、浮點、列表……),并可以隨時指定順序添加其中的元素,其形式是:#ist是一個可變的有序表,所以,可以往list中追加元素到末尾:
liebiao.append('瘦')
print(liebiao)
#結果1
>>>[1,?2.223,?-3,?'劉強東',?'章澤天',?'周杰倫',?'昆凌',?['微博',?'B站',?'抖音'],?'瘦']
#也可以把元素插入到指定的位置,比如索引號為5的位置,插入“胖”這個元素:
liebiao.insert(5,?'胖')
print(liebiao)
#結果2
>>>[1,?2.223,?-3,?'劉強東',?'章澤天',?'胖',?'周杰倫',?'昆凌',?['微博',?'B站',?'抖音'],?'瘦']
字典(dict):#字典
zidian={'劉強東':'46','章澤天':'36','周杰倫':'40','昆凌':'26'}字典使用鍵-值(key-value)存儲,無序,具有極快的查找速度。以上面的字典為例,想要快速知道周杰倫的年齡,就可以這么寫:zidian['周杰倫']
>>>'40'
dict內部存放的順序和key放入的順序是沒有關系的,也就是說,'章澤天'并非是在'劉強東'的后面。
DataFrame:
DataFrame可以簡單理解為excel里的表格格式。導入pandas包后,字典和列表都可以轉化為DataFrame,以上面的字典為例,轉化為DataFrame是這樣的:import?pandas?as?pddf=pd.DataFrame.from_dict(zidian,orient='index',columns=['age'])#注意DataFrame的D和F是大寫
df=df.reset_index().rename(columns={'index':'name'})#給姓名加上字段名
和excel一樣,DataFrame的任何一列或任何一行都可以單獨選出進行分析。
以上三種數據類型是python數據分析中用的最多的類型,基礎語法到此結束,接下來就可以著手寫一些函數計算數據了。2.從Python爬蟲學循環函數
掌握了以上基本語法概念,我們就足以開始學習一些有趣的函數。我們以爬蟲中繞不開的遍歷url為例,講講大家最難理解的循環函數for的用法:A.for函數
for函數是一個常見的循環函數,先從簡單代碼理解for函數的用途:zidian={'劉強東':'46','章澤天':'36','周杰倫':'40','昆凌':'26'}
for?key?in?zidian:
print(key)
>>>
劉強東
章澤天
周杰倫
昆凌
因為dict的存儲不是按照list的方式順序排列,所以,迭代出的結果順序很可能不是每次都一樣。默認情況下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同時#迭代key和value,可以用for k, v in d.items()
可以看到,字典里的人名被一一打印出來了。for 函數的作用就是用于遍歷數據。掌握for函數,可以說是真正入門了Python函數。B.爬蟲和循環
for函數在書寫Python爬蟲中經常被應用,因為爬蟲經常需要遍歷每一個網頁,以獲取信息,所以構建完整而正確的網頁鏈接十分關鍵。以某票房數據網為例,他的網站信息長這樣:
該網站的周票房json數據地址可以通過抓包工具找到,網址為http://www.cbooo.cn/BoxOffice/getWeekInfoData?sdate=20190114
仔細觀察,該網站不同日期的票房數據網址(url)只有后面的日期在變化,訪問不同的網址(url)就可以看到不同日期下的票房數據:
我們要做的是,遍歷每一個日期下的網址,用Python代碼把數據爬下來。此時for函數就派上用場了,使用它我們可以快速生成多個符合條件的網址:import?pandas?as?pd
url_df?=?pd.DataFrame({'urls':['http://www.cbooo.cn/BoxOffice/getWeekInfoData?sdate='?for?i?in?range(5)],'date'?:pd.date_range(20190114,freq?=?'W-MON',periods?=?5)})
'''
將網址相同的部分生成5次,并利用pandas的時間序列功能生成5個星期一對應的日期。
其中用到了第一部分提供的多個數據類型:
range(5)屬于列表,
'urls':[]屬于字典,
pd.dataframe屬于dataframe
'''
url_df['urls']?=?url_df['urls']?+?url_df['date'].astype('str')
滑動滑塊可以看到完整代碼和中間的注釋。
為了方便理解,我給大家畫了一個for函數的遍歷過程示意圖:
此處省略掉后續爬取過程,相關爬蟲代碼見文末。我們使用爬蟲爬取了5800+條數據,包含20個字段,時間囊括了從2008年1月開始至2019年2月十一年期間的單周票房、累計票房、觀影人次、場均人次、場均票價、場次環比變化等信息。3.Python怎么實現數據分析?
除了爬蟲,分析數據也是Python的重要用途之一,Excel能做的事,Python究竟怎么實現呢;Excel不能做的事,Python又是否能實現呢?利用電影票房數據,我們分別舉一個例子說明:A.Python分析
在做好數據采集和導入后,選擇字段進行初步分析可以說是數據分析的必經之路。在Dataframe數據格式的幫助下,這個步驟變得很簡單。
比如當我們想看單周票房第一的排名分別都是哪些電影時,可以使用pandas工具庫中常用的方法,篩選出周票房為第一名的所有數據,并保留相同電影中周票房最高的數據進行分析整理:import?pandas?as?pd
data?=?pd.read_csv('中國票房數據爬取測試20071-20192.csv',engine='python')
data[data['平均上座人數']>20]['電影名']
#計算周票房第一隨時間變化的結果,導入數據,并選擇平均上座人數在20以上的電影為有效數據
dataTop1_week?=?data[data['排名']==1][['電影名','周票房']]
#取出周票房排名為第一名的所有數據,并保留“電影名”和“周票房”兩列數據
dataTop1_week?=?dataTop1_week.groupby('電影名').max()['周票房'].reset_index()
#用“電影名”來分組數據,相同電影連續霸榜的選擇最大的周票房保留,其他數據刪除
dataTop1_week?=?dataTop1_week.sort_values(by='周票房',ascending=False)
#將數據按照“周票房”進行降序排序
dataTop1_week.index?=?dataTop1_week['電影名']
del?dataTop1_week['電影名']
#整理index列,使之變為電影名,并刪掉原來的電影名列
dataTop1_week
#查看數據
9行代碼,我們完成了Excel里的透視表、拖動、排序等鼠標點擊動作。最后再用Python中的可視化包matplotlib,快速出圖:
B.函數化分析
以上是一個簡單的統計分析過程。接下來就講講Excel基礎功能不能做的事——自定義函數提效。觀察數據可以發現,數據中記錄了周票房和總票房的排名,那么剛剛計算了周票房排名的代碼,還能不能復用做一張總票房分析呢?
當然可以,只要使用def函數和剛剛寫好的代碼建立自定義函數,并說明函數規則即可:def?pypic(pf):
#定義一個pypic函數,變量是pf
dataTop1_sum?=?data[['電影名',pf]]
#取出源數據中,列名為“電影名”和pf兩列數據
dataTop1_sum?=?dataTop1_sum.groupby('電影名').max()[pf].reset_index()
#用“電影名”來分組數據,相同電影連續霸榜的選擇最大的pf票房保留,其他數據刪除
dataTop1_sum?=?dataTop1_sum.sort_values(by=pf,ascending=False)
#將數據按照pf進行降序排序
dataTop1_sum.index?=?dataTop1_sum['電影名']
del?dataTop1_sum['電影名']
#整理index列,使之變為電影名,并刪掉原來的電影名列
dataTop1_sum[:20].iloc[::-1].plot.barh(figsize?=?(6,10),color?=?'orange')
name=pf+'top20分析'
plt.title(name)
#根據函數變量名出圖
定義函數后,批量出圖so easy:
學會函數的構建,一個數據分析師才算真正能夠告別Excel的鼠標點擊模式,邁入高效分析的領域。4.光看不練是永遠不能入門的
如果只有一小時學習,以上就是大家一定要掌握的Python知識點。光看不練永遠都會是門外漢,如果你有興趣學習Python數據分析,卻在過程中感到困惑,歡迎來參加我在網易云課堂的免費直播,每晚一個主題,有學有練,讓你快速入門Python數據分析:
不間斷直播陪你從入門到精通
掃碼即可預約免費直播席位
5.7 周二 20:00
《快速入門:搞定初學Python的十大易錯點》
1. python基礎語法學習路徑
2. 十大易錯點分別是哪些?
3. 用python實現第一個數據爬蟲
5.8 周三?20:00
《告別加班:用Pandas代替Excel快速處理數據》
1. 如何用Python快速處理數據?
2. 初學者使用pandas最容易犯的錯誤
3. ?Pandas套路總結
5.9 周四?20:00
《窮人和富人就差1%的努力:用隨機數模擬社會財富分配》
1. 什么是蒙特卡羅思想
2. 隨機數模擬的前提:準確判斷數據分布
3. 模型構建,模擬社會財富分配
5.13 周一?20:00
《Python數據可視化利器:pyecharts!》
1. 為什么需要交互式圖表來做數據表達?
2. pyecharts基礎操作
3. 數據可視化技能圖譜詳解
5.14 周二?20:00
《1小時入門python爬蟲:當數據分析師就該自己爬數據!》
1. 快讀讀懂網頁結構
2. 頁面解析及標簽提取
3. 實現第1個數據爬蟲
5.15 周三?20:00
《用數據做攻略:找到一個城市最有趣的地方》
1.數據爬蟲構建
2.字段篩選與數據清洗
3.篩選機制及評價方法
4.空間數據可視化表達結果
5.16 周四?20:00
《人口數據:揭秘一年來上海工作的人員流動情況》
1.全國人口遷徙數據采集
2.數據整理與核心城市篩選
3.數據表達:OD圖制作方法與技巧
贈送免費課程課程大綱1. Python語言入門
2. 每月凈收入模型構建
3. 每月支出模型構建
4. 不同情況下的花唄還款場景模擬
5. 負債積累問題
6. 如何用圖表講好一個故事?(彩蛋)
6G入門資料
本文所示票房數據爬取和分析代碼以及中國票房數據源數據,已經放在百度網盤6g資料包內
福利領取方式
所有以上福利,掃碼添加網易云課堂小助手即可獲得
微信號:neteasepython
席位有限,先到先得
總結
以上是生活随笔為你收集整理的学python重点是什么_如果只有1小时学Python,看这篇就够了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python能爬取网站后台数据_如何利用
- 下一篇: mysql判断产品是否过期_7个方法教你