系列文章
手把手教你數(shù)據(jù)分析(1)--Pandas讀取Excel信息
手把手教你數(shù)據(jù)分析(2)--缺失值處理
手把手教你數(shù)據(jù)分析(3)--數(shù)據(jù)可視化
00準備工作:
素材:一份全國各省市市委書記數(shù)據(jù)表.xls
(鏈接: https://pan.baidu.com/s/1gbgvcLbfEMM-9hFCZw1VlQ 密碼: p66u)
編程環(huán)境:mac + anaconda + jupyter notebook + python3.6
目錄:
01 使用pandas提取數(shù)據(jù)表中的數(shù)據(jù)進行分析
01 python環(huán)境安裝
請參考python爬蟲實戰(zhàn)(1) -- 抓取boss直聘招聘信息
02 pandas操作小試牛刀
先將.xls文件保存為.csv格式趟薄,這個格式才能被python調(diào)用
逗號分隔值(Comma-Separated Values,CSV典徊,有時也稱為字符分隔值杭煎,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)
主要包含的幾個命令
讀取csv數(shù)據(jù) pd.read_csv("路徑",encoding='utf-8')
print(data.head(10))
print(data[10:20])
print(data['某一列列名'])
print(data[["列1","列2","列3"]])
打印所有表頭卒落,就是所有列名 print(data.colums.tolist())
打印第四行羡铲,print(data.loc[4])
打印表的基礎數(shù)據(jù) print(data.describe()) 默認打印數(shù)值類型的
打印表的字符串類型基礎數(shù)據(jù) print(data.describe(include=[np.object]))
P.S.
jupyter notebook中,table鍵可以自動補全
下面直接貼代碼了儡毕,數(shù)量有些多也切,請細心查看
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("/Users/limingxuan/Documents/GitHub/py05_DataAnalysisWeizhuanye/數(shù)據(jù)資料/地市級黨委書記數(shù)據(jù)庫(2000-10).csv",encoding = "utf-8")
#打印前10行數(shù)據(jù)
print(data.head(10))
省級政區(qū)代碼 省級政區(qū)名稱 地市級政區(qū)代碼 地市級政區(qū)名稱 年份 黨委書記姓名 出生年份 出生月份 籍貫省份代碼 籍貫省份名稱 \
0 130000 河北省 130100 石家莊市 2000 陳來立 NaN NaN NaN NaN
1 130000 河北省 130100 石家莊市 2001 吳振華 NaN NaN NaN NaN
2 130000 河北省 130100 石家莊市 2002 吳振華 NaN NaN NaN NaN
3 130000 河北省 130100 石家莊市 2003 吳振華 NaN NaN NaN NaN
4 130000 河北省 130100 石家莊市 2004 吳振華 NaN NaN NaN NaN
5 130000 河北省 130100 石家莊市 2005 吳振華 NaN NaN NaN NaN
6 130000 河北省 130100 石家莊市 2006 吳振華 NaN NaN NaN NaN
7 130000 河北省 130100 石家莊市 2007 吳顯國 NaN NaN NaN NaN
8 130000 河北省 130100 石家莊市 2008 吳顯國 NaN NaN NaN NaN
9 130000 河北省 130100 石家莊市 2009 車俊 NaN NaN NaN NaN
... 民族 教育 是否是黨校教育(是=1,否=0) 專業(yè):人文 專業(yè):社科 專業(yè):理工 專業(yè):農(nóng)科 專業(yè):醫(yī)科 入黨年份 工作年份
0 ... NaN 碩士 1.0 NaN NaN NaN NaN NaN NaN NaN
1 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN NaN
2 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN NaN
3 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN NaN
4 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN NaN
5 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN NaN
6 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN NaN
7 ... NaN 碩士 1.0 0.0 1.0 0.0 0.0 0.0 NaN NaN
8 ... NaN 碩士 1.0 0.0 1.0 0.0 0.0 0.0 NaN NaN
9 ... NaN 本科 1.0 0.0 1.0 0.0 0.0 0.0 NaN NaN
[10 rows x 23 columns]
#打印[10-20)行數(shù)據(jù)
print(data[10:20])
省級政區(qū)代碼 省級政區(qū)名稱 地市級政區(qū)代碼 地市級政區(qū)名稱 年份 黨委書記姓名 出生年份 出生月份 籍貫省份代碼 籍貫省份名稱 \
10 130000 河北省 130100 石家莊市 2010 孫瑞彬 NaN NaN NaN NaN
11 130000 河北省 130200 唐山市 2000 白潤璋 NaN NaN NaN NaN
12 130000 河北省 130200 唐山市 2001 白潤璋 NaN NaN NaN NaN
13 130000 河北省 130200 唐山市 2002 白潤璋 NaN NaN NaN NaN
14 130000 河北省 130200 唐山市 2003 張和 NaN NaN NaN NaN
15 130000 河北省 130200 唐山市 2004 張和 NaN NaN NaN NaN
16 130000 河北省 130200 唐山市 2005 張和 NaN NaN NaN NaN
17 130000 河北省 130200 唐山市 2006 張和 NaN NaN NaN NaN
18 130000 河北省 130200 唐山市 2007 趙勇 NaN NaN NaN NaN
19 130000 河北省 130200 唐山市 2008 趙勇 NaN NaN NaN NaN
... 民族 教育 是否是黨校教育(是=1腰湾,否=0) 專業(yè):人文 專業(yè):社科 專業(yè):理工 專業(yè):農(nóng)科 專業(yè):醫(yī)科 入黨年份 \
10 ... NaN 碩士 1.0 0.0 1.0 0.0 0.0 0.0 NaN
11 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
12 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
13 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
14 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
15 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
16 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
17 ... NaN 本科 0.0 0.0 0.0 1.0 0.0 0.0 NaN
18 ... NaN 博士 0.0 0.0 1.0 0.0 0.0 0.0 NaN
19 ... NaN 博士 0.0 0.0 1.0 0.0 0.0 0.0 NaN
工作年份
10 NaN
11 NaN
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 NaN
[10 rows x 23 columns]
#根據(jù)列名贾费,打印某一列數(shù)據(jù)
print(data['黨委書記姓名'])
0 陳來立
1 吳振華
2 吳振華
3 吳振華
4 吳振華
5 吳振華
6 吳振華
7 吳顯國
8 吳顯國
9 車俊
10 孫瑞彬
11 白潤璋
12 白潤璋
13 白潤璋
14 張和
15 張和
16 張和
17 張和
18 趙勇
19 趙勇
20 趙勇
21 趙勇
22 王建忠
23 王建忠
24 王建忠
25 宋長瑞
26 宋長瑞
27 宋長瑞
28 宋長瑞
29 王三堂
...
3633 NaN
3634 NaN
3635 NaN
3636 NaN
3637 NaN
3638 NaN
3639 NaN
3640 NaN
3641 NaN
3642 NaN
3643 NaN
3644 NaN
3645 NaN
3646 NaN
3647 NaN
3648 NaN
3649 NaN
3650 NaN
3651 NaN
3652 NaN
3653 NaN
3654 NaN
3655 NaN
3656 NaN
3657 NaN
3658 NaN
3659 NaN
3660 NaN
3661 NaN
3662 NaN
Name: 黨委書記姓名, Length: 3663, dtype: object
#查看所有字段
field = data.columns.tolist()
print(field)
['省級政區(qū)代碼', '省級政區(qū)名稱', '地市級政區(qū)代碼', '地市級政區(qū)名稱', '年份', '黨委書記姓名', '出生年份', '出生月份', '籍貫省份代碼', '籍貫省份名稱', '籍貫地市代碼', '籍貫地市名稱', '性別', '民族', '教育', '是否是黨校教育(是=1,否=0)', '專業(yè):人文', '專業(yè):社科', '專業(yè):理工', '專業(yè):農(nóng)科', '專業(yè):醫(yī)科', '入黨年份', '工作年份']
#只顯示第四行
print(data.loc[4])
省級政區(qū)代碼 130000
省級政區(qū)名稱 河北省
地市級政區(qū)代碼 130100
地市級政區(qū)名稱 石家莊市
年份 2004
黨委書記姓名 吳振華
出生年份 NaN
出生月份 NaN
籍貫省份代碼 NaN
籍貫省份名稱 NaN
籍貫地市代碼 NaN
籍貫地市名稱 NaN
性別 NaN
民族 NaN
教育 本科
是否是黨校教育(是=1檐盟,否=0) 0
專業(yè):人文 0
專業(yè):社科 0
專業(yè):理工 1
專業(yè):農(nóng)科 0
專業(yè):醫(yī)科 0
入黨年份 NaN
工作年份 NaN
Name: 4, dtype: object
#打印多個列數(shù)據(jù)褂萧,需要雙層[[]]
print(data[["黨委書記姓名","年份","教育"]])
黨委書記姓名 年份 教育
0 陳來立 2000 碩士
1 吳振華 2001 本科
2 吳振華 2002 本科
3 吳振華 2003 本科
4 吳振華 2004 本科
5 吳振華 2005 本科
6 吳振華 2006 本科
7 吳顯國 2007 碩士
8 吳顯國 2008 碩士
9 車俊 2009 本科
10 孫瑞彬 2010 碩士
11 白潤璋 2000 本科
12 白潤璋 2001 本科
13 白潤璋 2002 本科
14 張和 2003 本科
15 張和 2004 本科
16 張和 2005 本科
17 張和 2006 本科
18 趙勇 2007 博士
19 趙勇 2008 博士
20 趙勇 2009 博士
21 趙勇 2010 博士
22 王建忠 2000 本科
23 王建忠 2001 本科
24 王建忠 2002 本科
25 宋長瑞 2003 碩士
26 宋長瑞 2004 碩士
27 宋長瑞 2005 碩士
28 宋長瑞 2006 碩士
29 王三堂 2007 碩士
... ... ... ...
3633 NaN 2003 NaN
3634 NaN 2004 NaN
3635 NaN 2005 NaN
3636 NaN 2006 NaN
3637 NaN 2007 NaN
3638 NaN 2008 NaN
3639 NaN 2009 NaN
3640 NaN 2010 NaN
3641 NaN 2000 NaN
3642 NaN 2001 NaN
3643 NaN 2002 NaN
3644 NaN 2003 NaN
3645 NaN 2004 NaN
3646 NaN 2005 NaN
3647 NaN 2006 NaN
3648 NaN 2007 NaN
3649 NaN 2008 NaN
3650 NaN 2009 NaN
3651 NaN 2010 NaN
3652 NaN 2000 NaN
3653 NaN 2001 NaN
3654 NaN 2002 NaN
3655 NaN 2003 NaN
3656 NaN 2004 NaN
3657 NaN 2005 NaN
3658 NaN 2006 NaN
3659 NaN 2007 NaN
3660 NaN 2008 NaN
3661 NaN 2009 NaN
3662 NaN 2010 NaN
[3663 rows x 3 columns]
#查看基礎數(shù)據(jù)
#mean = 均值
#std = 方差
print(data.describe())#只針對數(shù)值型
#()中沒有任何參數(shù)時,會默認只統(tǒng)計數(shù)值類型的字段內(nèi)容 等同于 data.describe(include = np.object[np.number])
省級政區(qū)代碼 地市級政區(qū)代碼 年份 出生年份 出生月份 \
count 3663.000000 3663.000000 3663.000000 2676.000000 2645.000000
mean 403393.393393 404456.756757 2005.000000 1953.622571 6.790548
std 148176.721620 148485.810327 3.162709 4.416316 3.614664
min 130000.000000 130100.000000 2000.000000 1941.000000 1.000000
25% 330000.000000 330100.000000 2002.000000 1951.000000 3.000000
50% 420000.000000 420200.000000 2005.000000 1954.000000 7.000000
75% 510000.000000 513400.000000 2008.000000 1956.000000 10.000000
max 650000.000000 654300.000000 2010.000000 1966.000000 14.000000
籍貫省份代碼 籍貫地市代碼 是否是黨校教育(是=1葵萎,否=0) 專業(yè):人文 \
count 2624.000000 2615.000000 2493.000000 2370.000000
mean 364428.353659 365742.332696 0.430405 0.275527
std 126267.485520 125961.993399 0.576136 0.446874
min 110000.000000 120000.000000 0.000000 0.000000
25% 320000.000000 320700.000000 0.000000 0.000000
50% 370000.000000 370700.000000 0.000000 0.000000
75% 430000.000000 431300.000000 1.000000 1.000000
max 640000.000000 640500.000000 9.000000 1.000000
專業(yè):社科 專業(yè):理工 專業(yè):農(nóng)科 專業(yè):醫(yī)科 入黨年份 \
count 2376.000000 2371.000000 2369.000000 2370.000000 2384.000000
mean 0.627525 0.256854 0.067539 0.009705 1976.906879
std 0.483566 0.436990 0.251006 0.098054 5.310080
min 0.000000 0.000000 0.000000 0.000000 1961.000000
25% 0.000000 0.000000 0.000000 0.000000 1973.000000
50% 1.000000 0.000000 0.000000 0.000000 1976.000000
75% 1.000000 1.000000 0.000000 0.000000 1981.000000
max 1.000000 1.000000 1.000000 1.000000 1994.000000
工作年份
count 2568.000000
mean 1973.129673
std 4.856564
min 1958.000000
25% 1970.000000
50% 1972.500000
75% 1976.000000
max 1990.000000
#顯示字符串的統(tǒng)計計數(shù)
print(data.describe(include=[np.object]))
#count = 出現(xiàn)的次數(shù)
#unique = 不同數(shù)量
#top = 出現(xiàn)頻率最高的城市……
#出現(xiàn)頻率
省級政區(qū)名稱 地市級政區(qū)名稱 黨委書記姓名 籍貫省份名稱 籍貫地市名稱 性別 民族 教育
count 3663 3663 3021 2624 2615 2708 2517 2550
unique 27 333 901 29 240 2 2 7
top 廣東省 瀘州市 焉榮竹 山東省 威海市 男 漢族 碩士
freq 231 11 11 313 58 2633 2351 1381
我自己在學這門課导犹,覺得不錯,推薦給想入門又找不到門道的小伙伴~
這是當初推薦給我的數(shù)據(jù)分析大牛寫的推薦理由羡忘,原封不動放這里啦:
這門課程是很系統(tǒng)的谎痢,而且適合小白基礎入門的。長得非常詳細卷雕,然后循序漸進节猿,后面有比較綜合性的項目實踐操作演練。
有兩個好處,一是就是幫我們更加系統(tǒng)的學習滨嘱,少走彎路峰鄙,二,好的學習資料太雨,幫我們節(jié)約學習時間吟榴。
貴是貴了點,不過囊扳,考慮考慮你的時間成本吩翻,我個人覺得還是值得的