數據分析之Python基礎知識
1 人贊了文章
一、
Python的安裝以及開發環境工欲善其事,必先利其器,本文所用的環境是Anaconda與Jupyter notebook,具體安裝與使用方法詳見
初學python者自學anaconda的正確姿勢是什麼??與jupyternotebook 可以做哪些事情?二、
Python基礎知識1.數據類型
1)字元串(string)案例1:定義字元串nameStr=馬雲moneyStr2=很有錢#字元串合併print(用+將字元串合併:,nameStr+moneyStr2)案例2:用%s格式化字元串str1=我叫 %s ,俺爹是 %s % (王思聰, 王健林)print(str1)
2)數字(Number)
#1)整型(int):馬雲年齡50歲age=50#2)浮點型(float):我用馬雲的餘額寶今天賺了3.53元money=3.53#3)布爾型(bool):布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要麼是True,要麼是Falsex = 3if x > 2: print(True)else: print(False) #4)空值(None):空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。age=Noneif age==None: print(年齡是空值)else: print(年齡不是空值)
3)列表(List)
#定義列表:病人姓名nameList = [Jack,Lucy,Michael]#列表長度nameLen = len(nameList)print(病人個數:,nameLen)#1)列表的增加nameList.append(Sarah)print(增加一個元素:,nameList)#增加到指定位置#nameList.insert(1,Adm)#2)列表的刪除nameList.pop(1)nameList#del nameList[1]#3)列表的查詢:使用下標索引來訪問列表中的值,下標從0開始name1 = nameList[0]print(查詢列表的第一個元素:,name1)#4)列表的修改:直接指定下標的值print(修改之前第一個元素是:,nameList[0])nameList[0] = Davidprint(修改之後第一個元素是:,nameList[0])print(nameList)
4)字典(Dictionary)
Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度。
#定義字典:病人編號和姓名的映射關係patientDic = {001:猴子,002:馬雲,003:王健林,004:馬化騰}#定義字典:excel病人數據存儲patientDic2={001:[猴子,29,1型糖尿病,較差], 002:[馬雲,34,2型糖尿病,好轉], 003:[王健林,28,1型糖尿病,顯著好轉], 004:[馬化騰,52,2型糖尿病,好轉]}print(patientDic2)#1)增加patientDic2[005] = [王思聰,30,1型糖尿病,好轉]print(patientDic2)#2)刪除#del patiengDic[002]patientDic2.pop(003)print(patientDic2)#3)查詢valueList = patientDic2[002]print(valueList)#4)修改print(修改之前,病人信息:,patientDic2[001])patientDic2[001] = [猴子, 29, 1型糖尿病, 好轉]print(修改之後,病人信息:,patientDic2[001])print(patientDic2)
5)集合(Sets)
註:容器集合沒有重複元素
容器:集合(Sets)是一個沒有重複元素的容器#定義集合:6家公司的股票gafataSets={騰訊,阿里巴巴,蘋果,谷歌,Facebook,亞馬遜,亞馬遜}print(gafataSets)#1)容器操作:增加#定義一個空的集合stockSets=set()#使用update()增加元素stockSets.update([騰訊,阿里巴巴,京東])print(stockSets)#2)容器操作:刪除stockSets.discard(京東)print(stockSets)#3)容器操作:查找txBool=騰訊 in stockSetsprint(txBool)4)容器操作:修改#第1步:先刪除stockSets.discard(京東)#第2步:再添加stockSets.update([京東])print(stockSets)
2.條件判斷
計算機之所以能做很多自動化的任務,因為它可以自己做條件判斷。
多個條件判斷age=int(input(輸出狗狗的年齡,按enter鍵獲取對應人類的年齡:))if age < 0 : print(狗狗年齡不能小於0)elif age == 1: print(相當於14歲的人)elif age == 2 : print(相當於22歲的人)else: human=22+(age-2)*5 print(對應人類年齡,human)
age = 20if age >= 18: print(your age is,age) print(adult)else: print(your age is,age) print(teenger)
3.循環
Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來,看例子
names = [Michael, Bob, Tracy]for name in names: print(name)
第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現:
sum = 0n = 99while n > 0: sum = sum + n n = n - 2print(sum)
break在循環中,break語句可以提前退出循環
n = 1while n <= 100: if n > 10: # 當n = 11時,條件滿足,執行break語句 break # break語句會結束當前循環 print(n) n = n + 1print(END)
continue在循環過程中,也可以通過continue語句,跳過當前的這次循環,直接開始下一次循環。
n = 0while n < 10: n = n + 1 if n % 2 == 0: # 如果n是偶數,執行continue語句 continue # continue語句會直接繼續下一輪循環,後續的print()語句不會執行 print(n)
4.函數
定義函數:在Python中,定義一個函數要使用def語句,依次寫出函數名、括弧、括弧中的參數和冒號:,然後,在縮進塊中編寫函數體,函數的返回值用return語句返回。
def my_abs(x): if x >= 0: return x else: return -xprint(my_abs(-30))
函數參數:不可變數據類型
字元串、數字,元祖這3種是不可變數據類型,其他的都是可變數據類型#定義函:改變數據的值def changeInt(a): a=a+1使用函數參數是不可變數據類型(字元串,元祖,數值):傳遞的只是該數據類型的值(相當於複製一份)b=1print(調用函數之前b的值=,b)changeInt(a=b) print(調用函數之後b的值=,b)
函數參數:可變數據類型
#定義函:改變列表的值def changeList(inputList): inputList.append(奶茶妹妹)nameList=[馬雲,劉強東]print(調用函數之前的值:,nameList)changeList(inputList=nameList) print(調用函數之後的值:,nameList)
5.模塊
Python內置模塊使用
Python內置模塊#第1步:引入模塊import sys#第2步:使用模塊中的函數,屬性pathList=sys.pathprint(Python 路徑為:
, pathList)
第三方模塊使用
#引入模塊import pandas as pd#文件路徑(在本地運行時替換成你自己的實際數據路徑)fileNameStr=F:病曆數據.xlsx#讀取excel文件里的數據xl = pd.ExcelFile(fileNameStr)#獲取指定工作表(Sheet)名稱的數據patientDf = xl.parse(Sheet1)print(patientDf)
6.數據結構
1)隊列就像你去餐廳外婆家吃飯排隊,新來的人在隊列尾部加入,叫做入隊。取完票的人從隊列首部離開隊列,叫做出隊
#導入collections包from collections import deque#定義隊列:排隊吃飯人的編號queue=deque([001,002,003,04,005])#入隊:在隊列尾部插入元素queue.append(006)print(queue)#出隊:在隊列頭部刪除元素queue.popleft()
2)棧(stack)
棧這種數據結構有點像像生活中的木桶。你往棧中加入新的元素,就是入棧,新的元素總是放在木桶的最上面。
#定義棧:瀏覽我個人知乎主頁的順序stack=deque([知乎動態,知乎回答,知乎文章])print(stack)#入棧:在棧頂加入元素stack.append(知乎專欄)print(stack)#運行結果:deque([知乎動態, 知乎回答, 知乎文章, 知乎專欄])#出棧stack.pop()#運行結果:知乎專欄print(stack)#運行結果:deque([知乎動態, 知乎回答, 知乎文章])
3)排序字典OrderedDict
OrderedDict:按照插入key的順序對字典排序from collections import OrderedDict定義字典:6家公司(GAFATA)的股票key是公司名稱,value是股票代碼gafataDict={騰訊:HK:00700,阿里巴巴:baba,蘋果:Apple, 谷歌:GOOGLE,Facebook:fb,亞馬遜:amzn}#將股票代碼全部大寫for key,value in gafataDict.items(): #對股票代碼轉換成大寫 newValue=value.upper() #將轉換後的股票代碼賦值給對應的key gafataDict[key]=newValueprint(gafataDict)#運行結果:{騰訊: HK:00700, 阿里巴巴: BABA, 蘋果: APPLE, 谷歌: GOOGLE, Facebook: FB, 亞馬遜: AMZN}
4)計數器
實例如下:
計數器from collections import CountercDict = Counter(有一種鳥是永遠也關不住的,因為他們的羽毛太光亮了。羽毛太光亮)cDict[毛]#運行結果:2#出現次數最多的3個詞cDict.most_common(3)#運行結果:[(的, 2), (羽, 2), (毛, 2)]
總結:Python的基礎知識先學到這,編程是一個孰能生巧的過程,要多敲代碼。相信經過我們的努力,最終大家都能跨進數據分析的大門。
推薦閱讀:
※python基礎-循環(while)
※python中的容器、可迭代對象、迭代器、生成器、列表解析式概念解析
※理解Django中內置的用戶認證
※邏輯回歸3(代碼解釋)
※Python 實現二叉樹,並可視化