python之pandas的簡單使用01
阿新 • • 發佈:2018-11-13
import pandas as pd import numpy as np #Series物件,類似一維陣列,左邊的資料是索引,右邊的一列是資料,自動建立 a1 = pd.Series([1,12]) # print(a1) a2 = pd.Series([[2,3],[2,4]]) # print(a2) a3 = pd.Series({'A':1}) # print(a3) a4 = pd.DataFrame(['a','b','c']) # print(a4) a5 = np.random.rand(3,4) # print(a5) a6 = pd.DataFrame(a5) # print(a6) #構造series物件 a7 = pd.Series(data=list('sdfcesc')) # print(a7) # print(type(a7)) #通過values取出一維陣列 a8 = a7.values # print(a8) a9 = pd.Series(data=list('sdfcesc'),index=list('sdfcesc')) # print(a9) # print(type(a9)) #通過字典形式,建立series物件 dict_obj = dict(age=12,name='小安') a10 = pd.Series(dict_obj) # print(a10) s1 = pd.Series(data=list('asdfghjkl'),index=list('ASDFGHJKL')) # print(s1) #通過索引名稱取值 # print(s1['A']) #按下標來取值 # print(s1[0]) '''標籤索引loc''' # print(s1.loc['A':'H']) # print(s1.loc[['A','H']]) ''' 高階索引取值 loc取行列的索引,iloc取行列的下標 ''' s1 = pd.Series(data=list('asdfghjkl'),index=list('ABCDEFGHI')) # print(s1) arr1 = np.random.rand(3,4) # print(arr1) p2 = pd.DataFrame(arr1, index=['A','B','C'], columns=['a','b','c','d']) # print(p2) #連續取多行 # print(p2.loc['A':'C']) # print(p2.iloc[0:2]) #此時左閉右開 #不連續取多列 # print(p2.loc[['A','C']]) # print(p2.iloc[[0,2]]) #連續取多行 # print(p2.loc[:,'a':'c']) # print(p2.iloc[:,0:1]) #此時左閉右開 #不連續取多行 # print(p2.loc[:,['a','c']]) # print(p2.iloc[:,[0,2]]) '''pandas的增刪改''' s1 = pd.Series(data=list('asdfghjkl'),index=list('ABCDEFGHI')) # print('series物件') # print(s1) arr1 = np.random.rand(3,4) p2 = pd.DataFrame(arr1, index=['A','B','C'], columns=['a','b','c','d']) # print('dataframe物件') # print(p2) '''增加資料''' #增加一列資料 p2.loc[:,'e'] = p2.loc[:,'b']+1 # print(p2) #增加一行資料 p2.loc['D'] = p2.loc['A'] # print(p2) '''修改資料''' #修改一個數據 p2.loc['A','a'] = 1 # print(p2) #修改一串資料 p2.loc[:,'b'] = [1,2,3,4] # print(p2) '''刪除資料''' p3 = p2.drop('A',axis=0) #刪除的是copy過來的物件裡的值,不會改變原來的物件 # print(p3) # print(p2) p4 = p2.drop('a',axis=1) # print(p4) # print(p2) '''資料的對齊運算add(),sub(),mul(),div()''' s1 = pd.Series(range(10,15),index=list('abcde')) # print(s1) s2 = pd.Series(range(20,25),index=list('cdefg')) # print(s2) #add s3 = s1.add(s2) s4 = s1.add(s2,fill_value=100) #如果找不到對應的就加預設值100 # print(s3) # print(s4) #sub s3 = s1.sub(s2) # print(s3) # mul # 同上 # div() # 同上 '''資料連線merge''' d1 = pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD')) d2 = pd.DataFrame(np.arange(10,26).reshape(4,4),index=list('cdmn'),columns=list('CDEF')) # print(d1) # print(d2) # # print(pd.merge(d1,d2))