寫在開頭:因?yàn)槲易约航佑|python也有一段時(shí)間了播掷,所以此份筆記是用來查漏補(bǔ)缺以及記錄個(gè)人認(rèn)為重要的知識(shí)點(diǎn)
1、數(shù)據(jù)分析的常規(guī)流程
2厘熟、缺失數(shù)據(jù)
- 對(duì)于缺失比例超過30%的指標(biāo)颁湖,應(yīng)該選擇放棄這個(gè)指標(biāo)俗他,即做刪除處理;
- 對(duì)于缺失比例低于30%的指標(biāo)夺溢,一般進(jìn)行填充處理论巍,即使用0、均值或者眾數(shù)進(jìn)行填充风响。
3嘉汰、為Jupyter Notebook添加目錄
為了便于閱讀,可為代碼增加一個(gè)目錄状勤,通過點(diǎn)擊下圖右側(cè)紅框可以建成下圖左側(cè)紅框的目錄鞋怀,通過點(diǎn)擊目錄跳轉(zhuǎn)到相應(yīng)的代碼部分。
不過添加目錄不是Jupyter Notebook自帶的需要自己安裝相應(yīng)的插件持搜,打開命令行密似,輸入以下代碼:
conda install -c conda-forge jupyter_contrib_nbextensions
詳細(xì)安裝,請參考為Jupyter Notebook添加目錄
4葫盼、輸出與輸出格式設(shè)置
- 利用關(guān)鍵詞print進(jìn)行輸出
>>>print("Hello World")
Hello World
- 對(duì)輸出格式做一定的設(shè)置残腌,可以使用str.format()方法進(jìn)行設(shè)定:
其中str是一個(gè)字符串,將format里面的內(nèi)容填充到str字符串的{}里- 一對(duì)一填充
>>>print('我正在學(xué)習(xí):{}'.format('pyhton基礎(chǔ)知識(shí)')) 我正在學(xué)習(xí):python基礎(chǔ)知識(shí)
- 多對(duì)多填充
>>>print('我正在學(xué)習(xí){}中的{}'.format('python','基礎(chǔ)知識(shí)')) 我正在學(xué)習(xí)python中的基礎(chǔ)知識(shí)
- 浮點(diǎn)數(shù)設(shè)置
.2f表示以浮點(diǎn)數(shù)展示剪返,且顯示小數(shù)點(diǎn)后兩位废累,.3f表示顯示小數(shù)點(diǎn)后3位的浮點(diǎn)數(shù)邓梅,以此類推脱盲。
>>>print("{}約{:.2f}億".format('中國單身人數(shù)',2)) 中國單身人數(shù)約2.00億
- 百分?jǐn)?shù)設(shè)置
.2%表示以百分比的形式展示,并且展示小數(shù)點(diǎn)后兩位日缨。
浮點(diǎn)數(shù)以及百分?jǐn)?shù)設(shè)置中“:”必不可少>>>print("中國男性的比例占總?cè)丝诘膡:.2%}".format(0.519))
5钱反、移除字符
一直以為strip()函數(shù)只是用來去除字符串首尾的空格的,但它是用來去除字符串的指定字符匣距,默認(rèn)移除字符串首尾的空格和換行符
>>>"AaA".strip("A")
"a"
6面哥、導(dǎo)入文件路徑或者文件名中包含中文
使用pandas.read_csv()讀取文件時(shí),當(dāng)導(dǎo)入文件路徑或者文件名中包含中文時(shí)毅待,需要加入engine="pyhton"來消除報(bào)錯(cuò)尚卫,這個(gè)錯(cuò)誤產(chǎn)生的原因是:當(dāng)我們調(diào)用read_csv()方法時(shí),默認(rèn)使用C語言作為解析語言尸红,我們只需要將默認(rèn)值改為python就行吱涉,如果文件格式是csv utf-8,則編碼格式也要跟著變?yōu)閡tf_8_sig外里;如果是文件格式是csv怎爵,則編碼格式則為gbk。
7盅蝗、導(dǎo)入sql文件
step1:將python與數(shù)據(jù)庫進(jìn)行連接
import pymsql
eng = pymql.connect(host='localhost',
user='user',
password='password',
db='db',
charset='utf-8')
# user:用戶名
# password:密碼
# db:數(shù)據(jù)庫名
# charset:數(shù)據(jù)庫編碼鳖链,一般為utf-8
step2:執(zhí)行sql查詢語句
import pandas as pd
df = pd.read_sql(sql,con=eng)
# 參數(shù)sql是需要執(zhí)行的sql語句
# con是step1建立好的連接,即eng
8墩莫、異常值的識(shí)別與處理
識(shí)別方式有以下3種:
- 根據(jù)業(yè)務(wù)經(jīng)驗(yàn)劃定不同指標(biāo)的正常范圍芙委,超過正常范圍的視為異常值逞敷;
-
利用四分位數(shù)將大于上邊緣和小于下邊緣的值視為異常值;
箱型圖 -
如果數(shù)據(jù)服從正態(tài)分布灌侣,可使用3σ原則:如果一個(gè)數(shù)值與平均值之間超過3倍的標(biāo)準(zhǔn)差(σ)兰粉,則將其視為異常值。下圖為正態(tài)分布圖顶瞳,大于u+3σ以及小于u-3σ的值視為異常值玖姑。
正態(tài)分布
處理異常值的方法有以下幾種:
- 最常用的方式就是刪除
- 把異常值當(dāng)作缺失值進(jìn)行填充
- 把異常值當(dāng)作特殊情況,研究異常值出現(xiàn)的原因
9慨菱、apply()與applymap()函數(shù)
apply()和applymap()都需要與匿名函數(shù)lambda結(jié)合使用
- apply()函數(shù)主要對(duì)DataFrame中的某一列或某一行的元素進(jìn)行相同的函數(shù)操作
df['column_name'].apply(lambda x:x+1)
applymap()函數(shù)用于對(duì)DataFrame中的每一個(gè)元素進(jìn)行相同的函數(shù)操作
df.applymap(lambda x:x+1)
10焰络、將文件導(dǎo)出到多個(gè)sheet
使用ExcelWriter()函數(shù)
# 聲明一個(gè)讀寫對(duì)象
# excelpath為文件存放的路徑
writer = pd.ExcelWriter(excelpath,engine='xlsxwriter')
# 分別將表df1、df2符喝、df3寫入Excel中的sheet1闪彼、sheet2、sheet3
# 并命名為表1协饲、表2畏腕、表3
df1.to_excel(writer,sheet_name = "表1")
df2.to_excel(writer,sheet_name = "表2")
df3.to_excel(writer,sheet_name = "表3")
# 保存讀寫的內(nèi)容
writer.save()
讀后感受:不適合新手小白,需要對(duì)python有一定的認(rèn)知后閱讀
附上pdf版:
鏈接:https://pan.baidu.com/s/1_oBc3Khi4CClw7nFDQSB1A
密碼:jga1