![《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第1頁](http://file4.renrendoc.com/view14/M06/26/03/wKhkGWdfwKGAYbrOAAEe_JYafQ8473.jpg)
![《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第2頁](http://file4.renrendoc.com/view14/M06/26/03/wKhkGWdfwKGAYbrOAAEe_JYafQ84732.jpg)
![《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第3頁](http://file4.renrendoc.com/view14/M06/26/03/wKhkGWdfwKGAYbrOAAEe_JYafQ84733.jpg)
![《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第4頁](http://file4.renrendoc.com/view14/M06/26/03/wKhkGWdfwKGAYbrOAAEe_JYafQ84734.jpg)
![《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第5頁](http://file4.renrendoc.com/view14/M06/26/03/wKhkGWdfwKGAYbrOAAEe_JYafQ84735.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第1章Python基礎(chǔ)Python基本數(shù)據(jù)類型Python基本數(shù)據(jù)結(jié)構(gòu)Python基本數(shù)據(jù)結(jié)構(gòu)之間的比較全套可編輯PPT課件
Python基本數(shù)據(jù)類型第1章
電子表格數(shù)據(jù)、新聞文本數(shù)據(jù)等屬于常見的數(shù)據(jù)集,它們是由一個個的數(shù)值和文本組成的。單個數(shù)值和文本,即是構(gòu)成數(shù)據(jù)集的基本單元。Python基本數(shù)據(jù)類型第1章
在Python中,將構(gòu)成數(shù)據(jù)集的基本單元:數(shù)值和文本,定義為基本數(shù)據(jù)類型,即數(shù)值和字符串。n1=2#整型n2=1.3#浮點n3=float(2)#轉(zhuǎn)換為浮點類型t=True#布爾真f=False#布爾假n4=t==1n5=f==0s1='1234's2='中國's3='''helloword!'''s4='ILikepython’
Python基本數(shù)據(jù)類型,即對單個數(shù)值和文本進行了定義。然而,真實數(shù)據(jù)集是由多個數(shù)值或多個文本組成的,其數(shù)據(jù)集形態(tài)可能是二維表(比如Excel表格),也可能是某一列(數(shù)據(jù)序列)。以某個數(shù)據(jù)序列為例,如何進行組織和存儲呢?——Python基本數(shù)據(jù)結(jié)構(gòu)Python基本數(shù)據(jù)結(jié)構(gòu)第1章
列表元組集合字典
列表作為Python中一種數(shù)據(jù)結(jié)構(gòu),可以存放不同類型的數(shù)據(jù),用中括號括起來進行定義。
L1=[1,2,3,4,5,6]L2=[1,2,'HE',3,5]L3=['KJ','CK','HELLO']
Python基本數(shù)據(jù)結(jié)構(gòu)(列表)第1章
元組與列表類似,也是Python中一種常用數(shù)據(jù)結(jié)構(gòu),不同之處在于元組中的元素不能修改,元組采用圓括號括起來進行定義。
t1=(1,2,3,4,6)t2=(1,2,'kl')t3=('h1','h2','h3')
Python基本數(shù)據(jù)結(jié)構(gòu)(元組)第1章
集合也是Python中的數(shù)據(jù)結(jié)構(gòu),是一種不重復(fù)元素的序列,用大括號括起來進行定義。
J1={1,'h',2,3,9}J2={1,'h',2,3,9,2}J3={'KR','LY','SE'}J4={'KR','LY','SE','SE'}Python基本數(shù)據(jù)結(jié)構(gòu)(集合)第1章
字典是一種按鍵、值對定義的數(shù)據(jù)結(jié)構(gòu),其中鍵必須唯一,用大括號括起來進行定義。字典中的元素由鍵和值兩部分組成,鍵在前值在后,鍵和值之間用冒號(:)來區(qū)分,元素之間用逗號隔開。鍵可以是數(shù)值、字符,值可以是數(shù)值、字符或者其他Python數(shù)據(jù)結(jié)構(gòu)(比如列表、元組等)。
d1={1:'h',2:[1,2,'k'],3:9}d2={'a':2,'b':'ky'}d3={'q1':[90,100],'k2':'kkk'}
Python基本數(shù)據(jù)結(jié)構(gòu)(字典)第1章
Python基本數(shù)據(jù)結(jié)構(gòu)之間比較第1章
列表和元組,對每個元素都進行了編號,稱為索引(index),從0開始依次遞增,它們的編號方式是系統(tǒng)默認(rèn)的,不可以更改。從數(shù)據(jù)的存儲上來看,它們沒有本質(zhì)區(qū)別,但是在操作有區(qū)別,比如列表的元素可以修改,執(zhí)行L2[1]=100,則原來值為2的元素,成功修改為100,而執(zhí)行t2[1]=100,則報錯,說明元組具有“寫保護”的功能,列表則沒有。而字典的編號方式則更靈活,可以進行個性化設(shè)置,比如可以用整數(shù)來編號,也可以用字符串來編號,這個編號要求具有唯一性,即“鍵”。集合數(shù)據(jù)結(jié)構(gòu)則沒有索引,僅保持了元素的唯一性,如果是集合之間運算,比如取交集、并集、差集等,建議使用這個數(shù)據(jù)結(jié)構(gòu),否則不建議使用第1章Python基礎(chǔ)索引、切片求長度、統(tǒng)計成員身份確認(rèn)和變量刪除Python相關(guān)公有方法第1章Python公有方法是指Python中大部分的數(shù)據(jù)結(jié)構(gòu)均可以通用的一種數(shù)據(jù)操作方法索引切片求長度統(tǒng)計成員身份確認(rèn)變量刪除
索引第1章索引即通過數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)標(biāo)識(下標(biāo)索引或鍵)來訪問s3='ILikepython'L1=[1,2,3,4,5,6]t2=(1,2,'kl')d1={1:'h',2:[1,2,'k'],3:9}d3={'q1':[90,100],'k2':'kkk'}print(s3[0],s3[1],L1[0],t2[2],d1[3],d3['k2'])執(zhí)行結(jié)果如下:I1kl9kkk注意下標(biāo)從0開始。字典結(jié)構(gòu)的數(shù)據(jù)標(biāo)識為鍵。需要說明的是,集合類型數(shù)據(jù)結(jié)構(gòu),不支持索引訪問。因為它沒有數(shù)據(jù)標(biāo)識
切片是指定索引位置,對數(shù)據(jù)實現(xiàn)分塊訪問或提取的一種數(shù)據(jù)操作方式。
下面簡單介紹字符串、列表、元組的切片方法。
s2='''helloword!'''L2=[1,2,'HE',3,5]t2=(1,2,'kl')s21=s2[0:]s22=s2[0:4]s23=s2[:]s24=s2[1:6:2]L21=L2[1:3]L22=L2[2:]L23=L2[:]t21=t2[0:2]t22=t2[:]切片執(zhí)行結(jié)果如下:helloword!hellhelloword!el[2,'HE']['HE',3,5][1,2,'HE',3,5](1,2)(1,2,'kl')
第1章
print(s21)print(s22)print(s23)print(s24)print(L21)print(L22)print(L23)print(t21)print(t22)0123456789100123012345678910135122340123401012
字符串的長度為字符串中所有字符的個數(shù),其中空格也算一個字符;列表、元組、集合的長度,即為元素的個數(shù);字典的長度為鍵的個數(shù),用函數(shù)len()來實現(xiàn)
s3='ILikepython'L1=[1,2,3,4,5,6]t2=(1,2,'kl')J2={1,‘h’,2,3,9}
d1={1:'h',2:[1,2,'k'],3:9}k1=len(s3)k2=len(L1)k3=len(t2)k4=len(J2)k5=len(d1)
求長度第1章
統(tǒng)計包括求最大值、最小值、求和等,可以是列表、元組、字符串L1=[1,2,3,4,5,6]t1=(1,2,3,4,6)s2='''helloword!'''m1=max(L1)m2=max(t1)m3=min(L1)m4=sum(t1)m5=max(s2)
統(tǒng)計第1章
成員身份的確認(rèn),用in命令,用來判斷某個元素是否屬于指定的數(shù)據(jù)結(jié)構(gòu)變量。
L1=[1,2,3,4,5,6]t1=(1,2,3,4,6)s2='''helloword!'''J2={1,'h',2,3,9,'SE'}z1='I'ins2z2='kj'inL1z3=2int1z4='SE'inJ2
成員身份確認(rèn)第1章
程序運行過程中,可以存在大量的中間變量,這些變量一來占用空間,二來影響可讀性,可以使用del命令刪除不必要的中間變量。
a=[1,2,3,4];b='srt'c={1:4,2:7,3:8,4:9}dela,b執(zhí)行該程序代碼,刪除了a、b兩個變量,而變量c保留。變量刪除第1章
第1章Python基礎(chǔ)列表和元組方法字典方法字符串方法
預(yù)定義幾個列表L1=[1,2,3,4,5,6]L2=[1,2,'HE',3,5]L3=['KJ','CK','HELLO']L4=[1,4,2,3,8,4,7]列表方法L=list()#產(chǎn)生空列表LL=[]#也可以用[]來產(chǎn)生空列表第1章
1.創(chuàng)建空列表:list()
2.添加元素:append()
L1=[1,2,3,4,5,6]L2=[1,2,'HE',3,5]L=[]L1.append('H')#在L1列表后面增加元素‘H’.print(L1)fortinL2:#利用循環(huán),將L2中的元素,依次順序添加到前面新建的空列表L中L.append(t)print(L)
執(zhí)行結(jié)果如下:[1,2,3,4,5,6,'H'][1,2,'HE',3,5]列表方法第1章
3.擴展列表:extend()
L2=[1,2,'HE',3,5]L1=[1,2,3,4,5,6,'H']L1.extend(L2)#在前面的L1基礎(chǔ)上,添加整個L2至其后面print(L1)執(zhí)行結(jié)果如下:[1,2,3,4,5,6,'H',1,2,'HE',3,5]4.元素計數(shù):count()print('元素2出現(xiàn)的次數(shù)為:',L1.count(2))執(zhí)行結(jié)果如下:元素2出現(xiàn)的次數(shù)為:2列表方法第1章
5.返回下標(biāo):index()
L1=[1,2,3,4,5,6,'H',1,2,'HE',3,5]print('H的索引下標(biāo)為:',L1.index('H'))執(zhí)行結(jié)果如下:H的索引下標(biāo)為:66.刪除元素:remove()
L1.remove('HE')#刪除HE元素print(L1)執(zhí)行結(jié)果如下:[1,2,3,4,5,6,'H',1,2,3,5]列表方法第1章
7.元素排序:sort()
L4=[1,4,2,3,8,4,7]L4.sort()print(L4)執(zhí)行結(jié)果如下:[1,2,3,4,4,7,8]注意,如果執(zhí)行L5=L4.sort(),則L5為空的。實際上經(jīng)過排序后L4的元素位置順序已經(jīng)改變了列表方法第1章
預(yù)定義兩個元組T1=(1,2,2,4,5)T2=('H2',3,'KL')創(chuàng)建空元組:tuple()
t1=tuple()#產(chǎn)生空元組
t=()#產(chǎn)生空元組元組方法第1章
T1=(1,2,2,4,5)T2=('H2',3,'KL')2.元素計數(shù):count()print('元素2出現(xiàn)的次數(shù)為:',T1.count(2))執(zhí)行結(jié)果如下:
元素2出現(xiàn)的次數(shù)為:
23.返回下標(biāo):index()
print('KL的下標(biāo)索引為:',T2.index('KL'))執(zhí)行結(jié)果如下:KL的下標(biāo)索引為:2元組方法第1章4.元組連接T3=T1+T2print(T3)執(zhí)行結(jié)果如下:(1,2,2,4,5,'H2',3,'KL')
字符串作為基本的數(shù)據(jù)類型,也可以看作一種特殊的數(shù)據(jù)結(jié)構(gòu)字符從0開始進行索引編號,包括空格特特殊字符1.創(chuàng)建空字符串:str()通過str函數(shù),可以創(chuàng)建空的字符串。示例代碼如下:S=str()#或S=’’產(chǎn)生空字符串
字符串方法第1章
2.查找子串:find()用find函數(shù)查找子串出現(xiàn)的開始索引位置,如果沒有找到則返回-1。st='helloword!‘z1=st.find('he',0,len(st))#返回包含子串的開始索引位置,否則-1z2=st.find('he',1,len(st))print(z1,z2)
執(zhí)行結(jié)果為:
0-1其中find函數(shù)第一個參數(shù)為需要查找的子串,第二個參數(shù)是待查字符串指定的開始位置,第三個參數(shù)為指定待查字符串的長度。字符串方法第1章
3.替換子串:replace()st='helloword!‘stt=st.replace('or','kl')#原來的st不變print(stt)print(st)執(zhí)行結(jié)果如下:hellowkld!helloword!4.字符串連接st1='joh'st2=st1+''+stprint(st2)執(zhí)行結(jié)果如下:johhelloword!字符串方法第1章
5.字符串比較
通過等號或不等號“==”、“!=”來進行判斷。str1='jo'str2='qb'str3='qb's1=str1!=str2s2=str2==str3print(s1,s2)執(zhí)行結(jié)果如下:TrueTrue字符串方法第1章
字典方法1.創(chuàng)建字典:dict()通過dict函數(shù),可以創(chuàng)建空字典,也可以將嵌套列表轉(zhuǎn)換為典。d=dict()#產(chǎn)生空字典D={}#產(chǎn)生空字典list1=[('a','ok'),('1','lk'),('001','lk')]#嵌套元素為元組list2=[['a','ok'],['b','lk'],[3,'lk']]#嵌套元素為列表d1=dict(list1)d2=dict(list2)print('d=:',d)print('D=:',D)print('d1=:',d1)print('d2=:',d2)第1章
執(zhí)行結(jié)果如下:d={}D={}d1={'a':'ok','1':'lk','001':'lk'}d2={'a':'ok','b':'lk',3:'lk'}字典方法第1章
2.獲取字典值:get()print(d2.get('b'))輸出結(jié)果如下:lk3.字典賦值:setdefault()通過setdefault方法,可以對預(yù)定義的空字典進行賦值。d.setdefault('a',0)D.setdefault('b',[1,2,3,4,5])print(d)print(D)執(zhí)行結(jié)果如下:{'a':0}{'b':[1,2,3,4,5]}預(yù)定義d={}D={}d2={'a':'ok','b':'lk',3:'lk'}第1章Python基礎(chǔ)條件語句循環(huán)語句函數(shù)條件語句條件判斷語句,是指滿足某些條件,才能做某件事情,而不滿足條件時是不允許做的。Python條件語句主要有三種形式:if…if…else…if…elif…else…第1章
條件語句第1章
if…語句if條件:
執(zhí)行代碼塊注意條件后面的冒號(英文格式輸入),同時執(zhí)行代碼塊均需要縮進并對齊。x=10importmath#導(dǎo)入數(shù)學(xué)函數(shù)庫ifx>0:#冒號s=math.sqrt(x)#求平方根,縮進print('s=',s)#打印結(jié)果,縮進執(zhí)行結(jié)果如下:s=3.1622776601683795條件語句第1章
if…else…語句if條件:
執(zhí)行語句塊else:
執(zhí)行語句塊同樣需要注意冒號及縮進對齊語法。x=-10importmath#導(dǎo)入數(shù)學(xué)函數(shù)庫ifx>0:#冒號s=math.sqrt(x)#求平方根,縮進print('s=',s)#打印結(jié)果,縮進else:s='負(fù)數(shù)不能求平方根'#提示語,縮進print('s=',s)#打印結(jié)果,縮進執(zhí)行結(jié)果如下:s=負(fù)數(shù)不能求平方根條件語句第1章
if…elif…else…語句if條件:
執(zhí)行語句塊elif條件:
執(zhí)行語句塊else:
執(zhí)行語句塊weather='sunny'ifweather=='sunny':print("shopping")elifweather=='cloudy':print("playingfootball")else:print("donothing")執(zhí)行結(jié)果如下:shopping循環(huán)語句第1章
while語句循環(huán)語句while,其使用方式如下:while條件:
執(zhí)行語句塊注意執(zhí)行語句塊中的程序全部都要縮進并對齊。一般while循環(huán)需要預(yù)定義條件變量,當(dāng)滿足條件的時候,循環(huán)執(zhí)行語句塊的內(nèi)容。以求1到100的和為例t=100 s=0whilet:s=s+tt=t-1print('s=',s)執(zhí)行結(jié)果如下:s=5050循環(huán)語句第1章
for循環(huán)循環(huán)語句for使用方式如下:for變量in序列:
執(zhí)行語句塊注意執(zhí)行語句塊中的程序全部需要縮進并對齊,其中序列為任意序列,可以是數(shù)組、列表、元組等。list1=list()list2=list()list3=list()forainrange(10):list1.append(a)fortin['a','b','c','d']:list2.append(t)forqin('k','j','p'):list3.append(q)print(list1)print(list2)print(list3)執(zhí)行結(jié)果如下:[0,1,2,3,4,5,6,7,8,9]['a','b','c','d']['k','j','p']函數(shù)第1章
無返回值函數(shù)定義與調(diào)用無返回值函數(shù)的定義格式如下:def函數(shù)名(輸入?yún)?shù)):
函數(shù)體注意冒號及縮進,函數(shù)體中的程序均需要縮進并對齊。#定義函數(shù)defsumt(t):s=0whilet:s=s+tt=t-1#調(diào)用函數(shù)并打印結(jié)果
s=sumt(50)print(s)執(zhí)行結(jié)果如下所示:None執(zhí)行結(jié)果為None,表示沒有任何結(jié)果,因為該函數(shù)沒有任何返回值。函數(shù)第1章
有返回值函數(shù)定義與調(diào)用有返回值的函數(shù)定義如下:def函數(shù)名稱(輸入?yún)?shù)):
函數(shù)體return返回變量
#定義函數(shù)defsumt(t):s=0whilet:s=s+tt=t-1returns
#調(diào)用函數(shù)并打印結(jié)果
s=sumt(50)print(s)執(zhí)行結(jié)果如下:1275該示例程序僅僅是在上一節(jié)無返回值函數(shù)定義的基礎(chǔ)上,增加了返回值。函數(shù)第1章
有多返回值函數(shù)定義與調(diào)用多返回值函數(shù),可以用一個元組來存放返回結(jié)果,元組中的元素數(shù)據(jù)類型可以不相同,其定義如下:def函數(shù)名稱(輸入?yún)?shù)):
函數(shù)體return(返回變量1,返回變量2,…)#定義函數(shù)deftest(r):importmaths=math.pi*r**2c=2*math.pi*rL=(s,c)D=[s,c,L]return(s,c,L,D)#調(diào)用函數(shù)并打印結(jié)果v=test(10)s=v[0]c=v[1]L=v[2]D=v[3]print(s)print(c)print(L)print(D)執(zhí)行結(jié)果如下:314.159265358979362.83185307179586(314.1592653589793,62.83185307179586)[314.1592653589793,62.83185307179586,(314.1592653589793,62.83185307179586)]第2章
科學(xué)計算包Numpy數(shù)組創(chuàng)建、數(shù)組尺寸與重排數(shù)組運算與數(shù)學(xué)函數(shù)數(shù)組切片、連接、存取、展平、排序與搜索Numpy簡介第2章
Numpy是Python用于科學(xué)計算的基礎(chǔ)包,也是大量Python數(shù)學(xué)和科學(xué)計算包的基礎(chǔ)。Numpy的核心基礎(chǔ)是ndarray(N-dimensionalarray,N維數(shù)組),即由數(shù)據(jù)類型相同的元素組成的N維數(shù)組。使用該包,需要按模塊的形式導(dǎo)入,即:importnumpy,大多情況下是importnumpyasnp,即簡稱np。利用array()函數(shù)創(chuàng)建數(shù)組第2章?;赼rray()函數(shù),可以將列表、元組、嵌套列表、嵌套元組等數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為數(shù)組d1=[1,2,3,4,0.1,7]#列表d2=(1,2,3,4,2.3)#元組d3=[[1,2,3,4],[5,6,7,8]]#嵌套列表,元素為列表d4=[(1,2,3,4),(5,6,7,8)]#嵌套列表,元素為元組d5=((1,2,3,4),(5,6,7,8))#嵌套元組importnumpyasnpd11=np.array(d1)d21=np.array(d2)d31=np.array(d3)d41=np.array(d4)d51=np.array(d5)deld1,d2,d3,d4,d5利用內(nèi)置函數(shù)創(chuàng)建數(shù)組第2章importnumpyasnpz1=np.ones((3,3))#創(chuàng)建3行3列元素全為1的數(shù)組z2=np.zeros((3,4))#創(chuàng)建3行4列元素全為0的數(shù)組z3=np.arange(10)#創(chuàng)建默認(rèn)初始值為0,默認(rèn)步長為1,末值為9的一維數(shù)組z4=np.arange(2,10)#創(chuàng)建默認(rèn)初始值為2,默認(rèn)步長為1,末值為9的一維數(shù)組z5=np.arange(2,10,2)#創(chuàng)建默認(rèn)初始值為2,步長為2,末值為9的一維數(shù)組數(shù)組尺寸與重排第2章d1=[1,2,3,4,0.1,7]#列表d3=[[1,2,3,4],[5,6,7,8]]#嵌套列表,元素為列表importnumpyasnpd11=np.array(d1)#將d1列表轉(zhuǎn)換為一維數(shù)組,結(jié)果賦值給變量d11d31=np.array(d3)#將d3嵌套列表轉(zhuǎn)換為二維數(shù)組,結(jié)果賦值給變量d31deld1,d3#刪除d1,d3s11=d11.shape
#返回一維數(shù)組d11的尺寸,結(jié)果賦值給變量s11s31=d31.shape#返回二維數(shù)組d31的尺寸,結(jié)果賦值給變量s31r=np.array(range(9))#一維數(shù)組r1=r.reshape((3,3))#重排為3行3列第2章數(shù)組運算importnumpyasnpA=np.array([[1,2],[3,4]])#定義二維數(shù)組AB=np.array([[5,6],[7,8]])#定義二維數(shù)組BC1=A-B#A、B兩個數(shù)組元素之間相減,結(jié)果賦給變量C1C2=A+B#A、B兩個數(shù)組元素之間相加,結(jié)果賦給變量C2C3=A*B#A、B兩個數(shù)組元素之間相乘,結(jié)果賦給變量C3C4=A/B#A、B兩個數(shù)組元素之間相除,結(jié)果賦給變量C4C5=A/3#A數(shù)組所有元素除以3,結(jié)果賦給變量C5C6=1/A#1除以A數(shù)組所有元素,結(jié)果賦給變量C6C7=A**2#A數(shù)組所有元素取平方,結(jié)果賦給變量C7C8=np.array([1,2,3,3.1,4.5,6,7,8,9])#定義數(shù)組C8C9=(C8-min(C8))/(max(C8)-min(C8))#C8中的元素做極差化處理,結(jié)果賦給變量C9第2章數(shù)學(xué)函數(shù)D=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定義數(shù)組D#數(shù)學(xué)運算E1=np.sqrt(D)#數(shù)組D中所有元素取平方根,結(jié)果賦給變量E1E2=np.abs([1,-2,-100])#取絕對值E3=np.cos([1,2,3])#取cos值E4=np.sin(D)#取sin值E5=np.exp(D)#取指數(shù)函數(shù)值第2章常用組切片方法假設(shè)D為待訪問或切片的數(shù)據(jù)變量,則訪問或者切片的數(shù)據(jù)=D[①,②]。其中①為對D的行下標(biāo)控制,②為對D的列下標(biāo)控制。為了更靈活地操作數(shù)據(jù),取所有的行或者列,可以用“:”來代替實現(xiàn)。同時,行控制還可以通過邏輯列表來實現(xiàn)。importnumpyasnpD=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定義數(shù)組DD12=D[1,2]#訪問D中行為1,列為2的數(shù)據(jù),注意下標(biāo)是從0開始的。D1=D[:,[1,3]]#訪問D中第1、3列數(shù)據(jù)D2=D[[1,3],:]#訪問D中第1、3行數(shù)據(jù)Dt1=D[D[:,0]>5,:]#取D中滿足第0列大于5的所有列數(shù)據(jù),本質(zhì)上行控制為邏輯列表TF=[True,False,False,True]#取D中第0、3行的所有列數(shù)據(jù),本質(zhì)上行控制為邏輯列表,取邏輯值為真的行Dt3=D[TF,:]第2章利用ix_()函數(shù)進行數(shù)組切片通過ix_()函數(shù)構(gòu)造行、列下標(biāo)索引器,實現(xiàn)數(shù)組的切片操作。importnumpyasnpD=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定義數(shù)組DD3=D[np.ix_([1,2],[1,3])]#提取D中行數(shù)為1、2,列數(shù)為1、3的所有元素D4=D[np.ix_(np.arange(2),[1,3])]#提取D中行數(shù)為0、1,列數(shù)為1、3的所有元素D6=D[np.ix_(D[:,1]<11,[1,2])]#提取D中第1列小于11得到的邏輯數(shù)組作為行索引,列數(shù)為1、2的所有元素D7=D[np.ix_(D[:,1]<11,[2])]#提取D中第1列小于11得到的邏輯數(shù)組作為行索引,列數(shù)為2的所有元素TF=[True,False,False,True]D8=D[np.ix_(TF,[2])]#提取TF=[True,False,False,True]邏輯列表為行索引,列數(shù)為2的所有元素D9=D[np.ix_(TF,[1,3])]#提取TF=[True,False,False,True]邏輯列表為行索引,列數(shù)為1,,3的所有元素第2章數(shù)組連接importnumpyasnpA=np.array([[1,2],[3,4]])#定義二維數(shù)組AB=np.array([[5,6],[7,8]])#定義二維數(shù)組BC_s=np.hstack((A,B))#水平連接要求行數(shù)相同C_v=np.vstack((A,B))#垂直連接要求列數(shù)相同第2章數(shù)組存取importnumpyasnpA=np.array([[1,2],[3,4]])#定義二維數(shù)組AB=np.array([[5,6],[7,8]])#定義二維數(shù)組BC_s=np.hstack((A,B))#水平連接np.save('data',C_s)第2章數(shù)組存取importnumpyasnpC_s=np.load(‘data.npy’)
數(shù)組展平
前面介紹了reshape函數(shù)將一維數(shù)組形態(tài)變換為二維數(shù)組,事實上也可以將二維數(shù)組形態(tài)展平變換為一維數(shù)組,通過ravel()函數(shù)即可實現(xiàn)。importnumpyasnparr=np.arange(12).reshape(3,4)arr1=arr.ravel()第2章
數(shù)組排序
通過sort函數(shù),可以對數(shù)組元素值按從小到大進行直接排序importnumpyasnparr=np.array([5,2,3,3,1,9,8,6,7])arr1=np.sort(arr)第2章
數(shù)組搜索
通過argmax和argmin函數(shù),可以返回待搜索數(shù)組最大值和最小值元素的索引值,如果存在多個最大值或最小值,則返回第一次出現(xiàn)的索引。對于二維數(shù)組而已,可以通過設(shè)置axis=0或1返回各列或者各行最大值或最小值索引。需要注意的是,索引從0開始。importnumpyasnparr=np.array([5,2,3,3,1,1,9,8,6,7,8,8])arr1=arr.reshape(3,4)maxindex=np.argmax(arr)minindex=np.argmin(arr)maxindex1=np.argmax(arr1,axis=0)#返回各列最大值索引minindex1=np.argmin(arr1,axis=1)
#返回各行最小值索引第2章第2章
科學(xué)計算包Numpy矩陣創(chuàng)建、矩陣基本屬性矩陣基本運算線性代數(shù)運算
矩陣創(chuàng)建Numpy的matrix是繼承自NumPy的二維數(shù)組對象,不僅擁有二維數(shù)組的屬性、方法與函數(shù),還擁有諸多特有的屬性與方法。同時,Numpy中的matrix和線性代數(shù)中的矩陣概念幾乎完全相同,同樣含有轉(zhuǎn)置矩陣,共軛矩陣,逆矩陣等概念。利用mat、matrix創(chuàng)建Numpy矩陣Numpy中可使用mat、matrix或bmat函數(shù)來創(chuàng)建矩陣importnumpyasnpmat1=np.mat("123;456;789")mat2=np.matrix([[1,2,3],[4,5,6],[7,8,9]])
第2章
矩陣創(chuàng)建
利用bmat創(chuàng)建矩陣在矩陣的日常使用過程中,將小矩陣組合成大矩陣是一種頻率極高的操作。在Numpy中可以使用bmat分塊矩陣函數(shù)實現(xiàn)。importnumpyasnparr1=np.eye(3)arr2=3*arr1mat=np.bmat(“arr1arr2;arr1arr2”)
第2章
矩陣基本屬性(轉(zhuǎn)置、共軛、逆矩陣)
importnumpyasnpmat=np.matrix(np.arange(4).reshape(2,2))mT=mat.TmH=mat.HmI=mat.I矩陣基本屬性第2章
importnumpyasnpmat1=np.mat("123;456;789")mat2=mat1*3mat3=mat1+mat2mat4=mat1-mat2mat5=mat1*mat2mat6=np.multiply(mat1,mat2)#點乘矩陣基本運算第2章
線性代數(shù)運算線性代數(shù)是數(shù)學(xué)的一個重要分支。Numpy包含numpy.linalg模塊,提供線性代數(shù)所需的功能,如計算逆矩陣、求解線性方程組、求特征值、奇異值分解以及求解行列式等。numpy.linalg模塊中的一些常用函數(shù)表函數(shù)名稱說明dot矩陣相乘inv求逆矩陣solve求解線性方程組
eig求特征值和特征向量eigvals求特征值svd計算奇異值分解det求行列式線性代數(shù)運算第2章
計算逆矩陣使用numpy.linalg模塊中的inv函數(shù)可以計算逆矩陣importnumpyasnpmat=np.mat('111;123;136')inverse=np.linalg.inv(mat)A=np.dot(mat,inverse)線性代數(shù)運算第2章
求解線性方程組numpy.linalg模塊中的solve函數(shù)可以求解線性方程組importnumpyasnpA=np.mat("1,-1,1;2,1,0;2,1,-1")b=np.array([4,3,-1])x=np.linalg.solve(A,b)#線性方程組Ax=b的解第2章
線性代數(shù)運算求解特征值與特征向量numpy.linalg模塊中的eigvals函數(shù)可以計算矩陣的特征值,eig函數(shù)可以返回一個包含特征值和對應(yīng)的特征向量的元組:importnumpyasnpA=np.matrix([[1,0,2],[0,3,0],[2,0,1]])#A_value=np.linalg.eigvals(A)A_value,A_vector=np.linalg.eig(A)第2章
線性代數(shù)運算奇異值分解利用numpy.linalg模塊中的svd函數(shù)可以對矩陣進行奇異值分解,返回U、Sigma、V這3個矩陣,其中,U和V是正交矩陣,Sigma為一維。importnumpyasnpA=np.mat("4.0,11.0,14.0;8.0,7.0,-2.0")U,Sigma,V=np.linalg.svd(A,full_matrices=False)第2章
線性代數(shù)運算計算矩陣行列式的值矩陣行列式是指矩陣的全部元素構(gòu)成的行列式,但構(gòu)成行列式的矩陣為方陣時,行列式存在值。numpy.linalg模塊中的det函數(shù)可以計算矩陣行列式的值。importnumpyasnpA=np.mat("3,4;5,6")A_value=np.linalg.det(A)第2章
線性代數(shù)運算第3章
數(shù)據(jù)處理包Pandaspandas簡介、序列創(chuàng)建與訪問序列屬性與方法序列切片與聚合運算Pandas簡介第3章
Pandas是基于Numpy開發(fā)的一個Python數(shù)據(jù)分析包,提供了大量的數(shù)據(jù)分析函數(shù),包括數(shù)據(jù)處理、數(shù)據(jù)抽取、數(shù)據(jù)集成、數(shù)據(jù)計算等基本的數(shù)據(jù)分析手段。Pandas核心數(shù)據(jù)結(jié)構(gòu)包括序列和數(shù)據(jù)框,序列儲存一維數(shù)據(jù),而數(shù)據(jù)框則可以存儲更復(fù)雜的多維數(shù)據(jù)。這里的數(shù)據(jù)框主要用來存儲二維數(shù)據(jù)(類似于數(shù)據(jù)表)。通過importpandasaspd命令導(dǎo)入該包,其中pd為其簡寫。序列創(chuàng)建及訪問第3章
序列由索引index和對應(yīng)的值構(gòu)成,默認(rèn)情況下索引從0開始從小到大順序排列,每個索引對應(yīng)一個值??梢酝ㄟ^列表、元組、數(shù)組、字典等創(chuàng)建默認(rèn)序列或個性化序列。序列對象的創(chuàng)建通過Pandas包中的Series()函數(shù)來實現(xiàn)。importpandasaspd
#導(dǎo)入Pandas庫importnumpyasnp
#導(dǎo)入Numpy庫s1=pd.Series([1,-2,2.3,'hq'])#指定列表創(chuàng)建默認(rèn)序列s2=pd.Series([1,-2,2.3,'hq'],index=['a','b','c','d'])#指定列表和索引,創(chuàng)建個性化序列s3=pd.Series((1,2,3,4,'hq'))
#指定元組創(chuàng)建默認(rèn)序列s4=pd.Series(np.array([1,2,4,7.1]))
#指定數(shù)組創(chuàng)建默認(rèn)序列#通過字典創(chuàng)建序列mydict={'red':2000,'bule':1000,'yellow':500}
#定義字典ss=pd.Series(mydict)
#指定字典創(chuàng)建序列序列創(chuàng)建及訪問第3章序列的訪問通過index索引訪問對應(yīng)的元素值。print(s4[3])print(s2['c'])執(zhí)行結(jié)果如下:7.12.3序列屬性第3章序列有兩個屬性,分別為值(values)和索引(index)。通過序列中的values屬性和index屬性可以獲取其內(nèi)容。importpandasaspds1=pd.Series([1,-2,2.3,'hq'])#創(chuàng)建序列s1va1=s1.values#獲取序列s1中的值,賦給變量va1in1=s1.index#獲取序列s1中的索引,賦給變量in1print(va1)
#打印變量結(jié)果print(in1)
#打印變量結(jié)果,可通過list()函數(shù)轉(zhuǎn)化為列表,如in2=list(in1)執(zhí)行結(jié)果如下:[1-22.3'hq']RangeIndex(start=0,stop=4,step=1)序列方法第3章unique()通過序列中的unique()方法,可以去掉序列中重復(fù)的元素值importpandasaspds5=[1,2,2,3,'hq','hq','he']#定義列表s5s5=pd.Series(s5)#將定義的列表s5轉(zhuǎn)換為序列s51=s5.unique()#調(diào)用unique()方法去重print(s51)
執(zhí)行結(jié)果如下:[123'hq''he']序列方法第3章isin()通過isin()方法,判斷元素值的存在性,如果存在則返回True,否則為False。比如判斷‘he’這個元素是否存在前面定義的s5序列中。importpandasaspds5=[1,2,2,3,'hq','hq','he']s5=pd.Series(s5)s52=s5.isin(['he'])print(s52)執(zhí)行結(jié)果如下:0False1False2False3False4False5False6Truedtype:bool序列方法——value_counts()第3章value_counts()通過序列中的value_counts()方法,可以統(tǒng)計獲得序列元素值出現(xiàn)的次數(shù)。比如統(tǒng)計s5序列中每個元素值出現(xiàn)的次數(shù)。s53=s5.value_counts()其中索引(index)為原序列元素的值,其值部分則為出現(xiàn)的次數(shù)。序列方法——空值處理方法第3章空值處理方法:isnull()、notnull()、dropan()它們的使用方法如下:isnull()判斷序列中是否有空值(nan值),如果有空值,返回True,否則False;notnull()判斷序列中的非空值(nan值),如果真,返回True,否則False;dropan()清洗序列中的空值(nan值)。importpandasaspdimportnumpyasnpss1=pd.Series([10,'hq',60,np.nan,20])#定義序列ss1,其中np.nan為空值(nan值)tt=ss1[~ss1.isnull()]#~為取反,采用邏輯數(shù)組進行索引獲取數(shù)據(jù)在以上代碼后面繼續(xù)輸入以下示例程序:tt2=ss1[ss1.notnull()]tt3=ss1.dropna()tt2和tt3的結(jié)果與tt一樣。序列切片第3章序列元素訪問是通過索引完成的,切片即連續(xù)或者間斷地批量獲取元素。importnumpyasnps1=pd.Series([1,-2,2.3,'hq'])s2=pd.Series([1,-2,2.3,'hq'],index=['a','b','c','d'])s4=pd.Series(np.array([1,2,4,7.1]))s22=s2[['a','d']]#取索引號為字符a,b的元素s11=s1[0:2]#索引為連續(xù)的數(shù)組s12=s1[[0,2,3]]#索引為不連續(xù)的數(shù)組s41=s4[s4>2]#索引為邏輯數(shù)組print(s22)print('-'*20)print(s11)print('-'*20)print(s12)print('-'*20)print(s41)執(zhí)行結(jié)果如下:a1dhqdtype:object--------------------011-2dtype:object--------------------0122.33hqdtype:object--------------------24.037.1dtype:float64序列聚合運算第3章序列的聚合運算,主要包括對序列中的元素求和、平均值、最大值、最小值、方差、標(biāo)準(zhǔn)差等。importpandasaspds=pd.Series([1,2,4,5,6,7,8,9,10])su=s.sum()sm=s.mean()ss=s.std()smx=s.max()smi=s.min()第3章
數(shù)據(jù)處理包Pandas數(shù)據(jù)框(DataFrame)簡介、創(chuàng)建數(shù)據(jù)框?qū)傩耘c方法數(shù)據(jù)框訪問與切片數(shù)據(jù)框(DataFram)簡介第3章
Pandas中另一個重要的數(shù)據(jù)對象為數(shù)據(jù)框(DataFram),由多個序列按照相同的index組織在一起形成一個二維表。事實上,數(shù)據(jù)框的每一列為序列。數(shù)據(jù)框的屬性包括index、列名和值,均可以獲取出來并進行操作。由于數(shù)據(jù)框是更為廣泛的一種數(shù)據(jù)組織形式,許多外部數(shù)據(jù)文件讀取到Python中大部分會采用數(shù)據(jù)框的形式進行存取,比如數(shù)據(jù)庫、excel和TXT文本。同時數(shù)據(jù)框也提供了極為豐富的方法用于處理數(shù)據(jù)及完成計算任務(wù)。數(shù)據(jù)框創(chuàng)建第3章
基于字典,利用Pandas庫中的DataFrame函數(shù),可以創(chuàng)建數(shù)據(jù)框。其中字典的鍵轉(zhuǎn)化為列名,字典的值轉(zhuǎn)化為列值,而索引為默認(rèn)值,即從0開始從小到大排列。importpandasaspdimportnumpyasnpdata={'a':[2,2,np.nan,5,6],'b':[‘kl’,’kl’,’kl’,np.nan,’kl’],’c’:[4,6,5,np.nan,6],’d’:[7,9,np.nan,9,8]}df=pd.DataFrame(data)數(shù)據(jù)框?qū)傩缘?章
數(shù)據(jù)框?qū)ο缶哂腥齻€屬性,分別為列名、索引和值。以前面定義的df為例print('columns=',df.columns)print('-'*50)print('index=',list(df.index))print('-'*50)print('values=')print(df.values)輸出結(jié)果為:columns=Index(['a','b','c','d'],dtype='object')--------------------------------------------------index=[0,1,2,3,4]--------------------------------------------------values=[[2.0'kl'4.07.0][2.0'kl'6.09.0][nan'kl'5.0nan][5.0nannan9.0][6.0'kl'6.08.0]]數(shù)據(jù)框方法第3章dropna()通過dorpna()方法,可以去掉數(shù)據(jù)集中的空值(nan值),需要注意的是原來數(shù)據(jù)集不發(fā)生改變,新數(shù)據(jù)集需要重新定義。df1=df.dropna()數(shù)據(jù)框方法第3章
fillna()通過fillna()方法,可以對數(shù)據(jù)框中的空值(nan值)進行填充。默認(rèn)情況下所有空值填充同一個元素值(數(shù)值或者字符串),也可以指定不同的列填充不同的值。df2=df.fillna(0)#所有空值元素填充0df3=df.fillna('Kl')#所有空值元素填充kldf4=df.fillna({'a':0,'b':'kl','c':0,'d':0})
#全部列填充df5=df.fillna({'a':0,'b':'kl'})#部分列填充數(shù)據(jù)框方法第3章
sort_values()可以利用sort_values()方法,指定列按值進行排序importpandasaspddata={'a':[5,3,4,1,6],'b':['d','c','a','e','q'],'c':[4,6,5,5,6]}Df=pd.DataFrame(data)Df1=Df.sort_values('a',ascending=False)#默認(rèn)按升序,這里設(shè)置為降序數(shù)據(jù)框方法第3章sort_index()有時候需要按索引進行排序,這時候可以使用sort_index()方法。Df2=Df1.sort_index(ascending=False)#默認(rèn)按升序,這里設(shè)置為降序數(shù)據(jù)框方法第3章head()通過head(N)方法,可以取數(shù)據(jù)集中的前N行,比如取前面定義的數(shù)據(jù)框Df2中的前4行。H4=Df2.head(4);數(shù)據(jù)框方法第3章
drop()利用dorp()方法,可以刪掉數(shù)據(jù)集中的指定列。比如刪除前面定義的H4中的b列。H41=H4.drop('b',axis=1)#需指定軸為1數(shù)據(jù)框方法第3章
join()利用join()方法,可以實現(xiàn)兩個數(shù)據(jù)框之間的水平連接Df3=pd.DataFrame({'d':[1,2,3,4,5]})Df4=Df.join(Df3)數(shù)據(jù)框方法第3章to_excel()通過to_excel()方法,可以將數(shù)據(jù)框?qū)С龅紼xcel文件中,Excel文件中。importpandasaspdlist1=['a','b','c','d','e','f']list2=[1,2,3,4,5,6]list3=[1.4,3.5,2,6,7,8]list4=[4,5,6,7,8,9]list5=['t',5,6,7,'k',9.6]D={'M1':list1,'M2':list2,'M3':list3,'M4':list4,'M5':list5}G={'M1':list2,'M2':list3,'M3':list4}D=pd.DataFrame(D)#將字典D轉(zhuǎn)化為數(shù)據(jù)框G=pd.DataFrame(G)#將字典G轉(zhuǎn)化為數(shù)據(jù)框D.to_excel('D.xlsx')G.to_excel('G.xlsx')數(shù)據(jù)框方法第3章
描述統(tǒng)計方法可以對數(shù)據(jù)框中各列求和、求平均值或者進行描述性統(tǒng)計,以前面定義的Df4為例Dt=Df4.drop('b',axis=1)#Df4中刪除b列R1=Dt.sum()#各列求和R2=Dt.mean()#各列求平均值R3=Dt.describe()#各列做描述性統(tǒng)計數(shù)據(jù)框訪問與切片第3章
利用數(shù)據(jù)框中的iloc屬性進行切片假設(shè)DF為待訪問或切片的數(shù)據(jù)框,則切片形式為:DF.iloc[①,②]。其中①為行下標(biāo)控制,②為列下標(biāo)控制,可通過數(shù)值列表來實現(xiàn),取所有的行或者列用“:”。同時,行控制還可以通過邏輯列表來實現(xiàn)。#ilocforpositionalindexingc3=df2.iloc[1:3,2]c4=df2.iloc[1:3,0:2]c5=df2.iloc[1:3,:]c6=df2.iloc[[0,2,3],[1,2]]TF=[True,False,False,True,True]c7=df2.iloc[TF,[1]]訪問當(dāng)個值,比如:df2.iloc[2,1]第3章
數(shù)據(jù)處理包PandasExcel數(shù)據(jù)文件讀取TXT數(shù)據(jù)文件讀取CSV數(shù)據(jù)文件讀取Excel文件讀取第3章
通過read_excel()函數(shù)讀取Excel文件數(shù)據(jù),可以讀取指定的工作簿(sheet),也可以設(shè)置讀取有無表頭的數(shù)據(jù)表。path='一、車次上車人數(shù)統(tǒng)計表.xlsx';data=pd.read_excel(path);Excel文件讀取第3章
讀取文件中Sheet2里的數(shù)據(jù)data=pd.read_excel(path,'Sheet2')#讀取sheet里面的數(shù)據(jù)Excel文件讀取第3章
有時候數(shù)據(jù)表中沒有設(shè)置字段,即無表頭,讀取格式如下:dta=pd.read_excel('dta.xlsx',header=None)#無表頭TXT文件讀取第3章
通過read_table()函數(shù)可以讀取TXT文本數(shù)據(jù)。需要注意的是,TXT文本數(shù)據(jù)列之間會存在特殊字符作為分隔,常見的有Tab鍵、空格和逗號。同時還需注意有些文本數(shù)據(jù)文件是沒有設(shè)置表頭的。importpandasaspddta1=pd.read_table('txt1.txt',header=None)#分隔默認(rèn)為Tab鍵,設(shè)置無表頭。TXT文件讀取第3章
dta2=pd.read_table('txt2.txt',sep='\s+')#分隔為空格,帶表頭TXT文件讀取第3章dta3=pd.read_table('txt3.txt',sep=',',header=None)
#分隔為逗號,設(shè)置無表頭CSV文件讀取第3章CSV文件也是一類廣泛使用的外部數(shù)據(jù)文件,對于一般的CSV數(shù)據(jù)文件可以通過read_csv()函數(shù)讀取。importpandasaspdA=pd.read_csv('data.csv',sep=',');#逗號分隔CSV文件讀取第3章CSV文件可以存儲大規(guī)模的數(shù)據(jù)文件,比如單個數(shù)據(jù)文件大小可達數(shù)GB、數(shù)十GB,這時候可以采用分塊的方式進行讀取。importpandasaspdreader=pd.read_csv('data.csv',sep=',',chunksize=50000,usecols=[3,4,10])k=0forAinreader:k=k+1print('第'+str(k)+'次讀取數(shù)據(jù)規(guī)模為:',len(A))執(zhí)行結(jié)果如下:第1次讀取數(shù)據(jù)規(guī)模為:50000第2次讀取數(shù)據(jù)規(guī)模為:50000第3次讀取數(shù)據(jù)規(guī)模為:33699CSV文件讀取第3章對大規(guī)模的CSV文件進行數(shù)據(jù)探索,可以讀取前N行進行分析,比如前1000行importpandasaspdA=pd.read_csv('data.csv',sep=',',nrows=1000)小結(jié):通過pandas包中的函數(shù),讀取Excel、TXT和CSV文件,在Python中的數(shù)據(jù)結(jié)構(gòu)均為DataFrame數(shù)據(jù)框,進而我們可以利用數(shù)據(jù)框中的方法進行數(shù)據(jù)處理和分析了第3章
數(shù)據(jù)處理包Pandas時間處理函數(shù)數(shù)據(jù)框合并函數(shù)數(shù)據(jù)框關(guān)聯(lián)函數(shù)時間處理函數(shù)第3章
to_datetime()函數(shù)主要是將字符串型的日期轉(zhuǎn)換為時間戳的格式。方便后續(xù)的數(shù)據(jù)處理,比如提取其所屬年份、月份、周數(shù)、日期、小時、分鐘、秒、星期幾等簡單調(diào)用形式為to_datetime(S,format),其中S為待求的日期字符串或日期字符串列表或日期字符串序列,format為日期字符串格式,默認(rèn)缺省importpandasaspdt1=pd.to_datetime('2015-08-0105:50:43.000001',format='%Y-%m-%d%H:%M:%S.%')t2=pd.to_datetime(['2015-08-0105:50:43','2015-08-0105:51:40'])t3=pd.to_datetime(['2015-08-01','2015-08-02'])t4=pd.to_datetime(pd.Series(['2015-08-01','2015-08-02']))時間處理函數(shù)第3章
執(zhí)行結(jié)果如下數(shù)據(jù)框合并函數(shù)第3章
對兩個數(shù)據(jù)框進行水平合并、垂直合并是數(shù)據(jù)處理與整合中常見的操作,這里介紹concat()函數(shù),可以通過設(shè)置軸(Axis)為1或0實現(xiàn)importpandasaspdimportnumpyasnpdict1={'a':[2,2,'kt',6],'b':[4,6,7,8],'c':[6,5,np.nan,6]}dict2={'d':[8,9,10,11],'e':['p',16,10,8]}dict3={'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5],'e':[5,6]}df1=pd.DataFrame(dict1)df2=pd.DataFrame(dict2)df3=pd.DataFrame(dict3)deldict1,dict2,dict3df4=pd.concat([df1,df2],axis=1)#水平合并df5=pd.concat([df3,df4],axis=0)#垂直合并,有相同的列名,index屬性伴隨原數(shù)據(jù)框df5.index=range(6)#重新設(shè)置index屬性數(shù)據(jù)框合并函數(shù)第3章
執(zhí)行結(jié)果如下數(shù)據(jù)框關(guān)聯(lián)函數(shù)第3章
merge()函數(shù)類似于數(shù)據(jù)庫中的SQL關(guān)聯(lián)操作語句,指定關(guān)聯(lián)字段之后可進行內(nèi)連接(InnerJoin)、左連接(LeftJoin)和右連接(RightJoin)等數(shù)據(jù)操作importpandasaspddict1={'code':['A01','A01','A01','A02','A02','A02','A03','A03'],'month':['01','02','03','01','02','03','01','02'],'price':[10,12,13,15,17,20,10,9]}dict2={'code':['A01','A01','A01','A02','A02','A02'],'month':['01','02','03','01','02','03'],'vol':[10000,10110,20000,10002,12000,21000]}df1=pd.DataFrame(dict1)df2=pd.DataFrame(dict2)deldict1,dict2df_inner=pd.merge(df1,df2,how='inner',on=['code','month']) #內(nèi)連接df_left=pd.merge(df1,df2,how='left',on=['code','month']) #左連接df_right=pd.merge(df1,df2,how='right',on=['code','month']) #右連接數(shù)據(jù)框關(guān)聯(lián)函數(shù)第3章
執(zhí)行結(jié)果如下第3章
數(shù)據(jù)處理包Pandas滾動計算、時間元素提取映射與離散化分組統(tǒng)計滾動計算第3章
滾動計算,也稱為移動計算,給定一個數(shù)據(jù)序列,按指定的前移長度進行統(tǒng)計計算,比如求和、平均值、最大值、最小值、中位數(shù)、方差、標(biāo)準(zhǔn)差等。這里前移長度的計算,包含自身,如果待計算的數(shù)據(jù)序列小于指定的前移長度,則無法計算,用空值“nan”來表示。簡單調(diào)用形式為:S.rolling(N).統(tǒng)計函數(shù),其中S表示序列,N表示指定的前移長度importpandasaspdlist_data=[10,4,3,8,15,26,17,80,12,5]series_data=pd.Series(list_data)rolling_sum=series_data.rolling(5).sum()rolling_mean=series_data.rolling(5).mean()rolling_max=series_data.rolling(5).max()rolling_min=series_data.rolling(5)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)八年級上冊《實驗與探究三角形中邊與角之間的不等關(guān)系》聽評課記錄
- 魯教版歷史六年級上冊第5課《夏、商、西周的興亡》聽課評課記錄
- 魯人版道德與法治九年級下冊13.1《綠水青山就是金山銀山》聽課評課記錄1
- 部審人教版八年級數(shù)學(xué)下冊聽評課記錄18.2.1 第1課時《矩形的性質(zhì)》
- 七年級上冊道德與法治第十課綻放生命之花聽課評課記錄(2課時)
- 星球版地理八年級下冊《第二節(jié) 生態(tài)環(huán)境保護與資源開發(fā)》聽課評課記錄1
- 人教版歷史八年級上冊第22課《抗日戰(zhàn)爭的勝利》聽課評課記錄
- 小學(xué)五年級聽評課記錄
- 魯教版數(shù)學(xué)七年級上冊1.1《認(rèn)識三角形》聽評課記錄5
- 蘇科版數(shù)學(xué)七年級下冊聽評課記錄7.3圖形的平移1
- 四年級計算題大全(列豎式計算,可打印)
- 科技計劃項目申報培訓(xùn)
- 591食堂不合格食品處置制度
- 產(chǎn)業(yè)鏈鏈長分工表
- 國際金融課件(完整版)
- 導(dǎo)向標(biāo)識系統(tǒng)設(shè)計(一)課件
- 220t鍋爐課程設(shè)計 李學(xué)玉
- 全英文劇本 《劇院魅影》
- 北京城的中軸線PPT通用課件
- 黑布林繪本 Dad-for-Sale 出售爸爸課件
- 京東方頂崗實習(xí)報告1
評論
0/150
提交評論