《對(duì)比Excel,輕松學(xué)習(xí)Python數(shù)據(jù)分析》筆記

寫在開頭:因?yàn)槲易约航佑|python也有一段時(shí)間了播掷,所以此份筆記是用來查漏補(bǔ)缺以及記錄個(gè)人認(rèn)為重要的知識(shí)點(diǎn)


1、數(shù)據(jù)分析的常規(guī)流程

常規(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)后兩位日缨。
    >>>print("中國男性的比例占總?cè)丝诘膡:.2%}".format(0.519))
    
    浮點(diǎn)數(shù)以及百分?jǐn)?shù)設(shè)置中“:”必不可少

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種:
  1. 根據(jù)業(yè)務(wù)經(jīng)驗(yàn)劃定不同指標(biāo)的正常范圍芙委,超過正常范圍的視為異常值逞敷;
  2. 利用四分位數(shù)將大于上邊緣和小于下邊緣的值視為異常值;


    箱型圖
  3. 如果數(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茉稠,一起剝皮案震驚了整個(gè)濱河市描馅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌而线,老刑警劉巖铭污,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異膀篮,居然都是意外死亡嘹狞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門誓竿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磅网,“玉大人,你說我怎么就攤上這事筷屡〗担” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵速蕊,是天一觀的道長嫂丙。 經(jīng)常有香客問我,道長规哲,這世上最難降的妖魔是什么跟啤? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上隅肥,老公的妹妹穿的比我還像新娘竿奏。我一直安慰自己,他們只是感情好腥放,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布泛啸。 她就那樣靜靜地躺著,像睡著了一般秃症。 火紅的嫁衣襯著肌膚如雪候址。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天种柑,我揣著相機(jī)與錄音岗仑,去河邊找鬼。 笑死聚请,一個(gè)胖子當(dāng)著我的面吹牛荠雕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驶赏,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼炸卑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了煤傍?” 一聲冷哼從身側(cè)響起盖文,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎患久,沒想到半個(gè)月后椅寺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒋失,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桐玻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篙挽。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖镊靴,靈堂內(nèi)的尸體忽然破棺而出铣卡,到底是詐尸還是另有隱情,我是刑警寧澤偏竟,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布煮落,位于F島的核電站,受9級(jí)特大地震影響踊谋,放射性物質(zhì)發(fā)生泄漏蝉仇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轿衔。 院中可真熱鬧沉迹,春花似錦、人聲如沸害驹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宛官。三九已至葫松,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間底洗,已是汗流浹背进宝。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枷恕,地道東北人党晋。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像徐块,于是被迫代替她去往敵國和親未玻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容