python的pandas庫的sort_values、set_index、reset_index、cumsum、groupby函式的用法
阿新 • • 發佈:2018-11-02
import pandas as pd #sort_values()函式是按照選中索引所在列的原素進行排序 df=pd.DataFrame({'A':[3,1,1,6,7],'B':['a','d','c','b','e'],'C':[123,343,122,978,459]}) print(df.sort_values('A')) # 結果 ''' A B C 1 1 d 343 2 1 c 122 0 3 a 123 3 6 b 978 4 7 e 459 ''' #如果多個索引,按照索引先後順序,依次在上一次索引排序後再對重複排序的內部進行排序 print(df.sort_values(['A','B'])) # 結果 ''' A B C 1 1 e 343 2 1 t 122 0 3 a 123 3 6 o 978 4 7 r 459 ''' # set_index,rset_index:重新設定某一列作為索引/恢復某一列的索引 df=pd.DataFrame({'A':['a','a','e','a','e'],'B':[4,6,5,7,5],'C':[i for i in range(23,28)]}) print(df.set_index('A')) # 結果 ''' B C A a 4 23 a 6 24 e 5 25 a 7 26 e 5 27 ''' sets=df.set_index(['A','B']) print(sets) # 結果 ''' C A B a 4 23 6 24 e 5 25 a 7 26 e 5 27 ''' sets1=sets.reset_index(['A','B']) print(sets1) #結果 ''' A B C 0 a 4 23 1 a 6 24 2 e 5 25 3 a 7 26 4 e 5 27 ''' # cumsum:計算軸向元素累加和,返回由中間結果組成的陣列 import numpy as np # 是2*2*3的陣列 arr = np.array([[[1,2,3],[8,9,12]],[[1,2,4],[2,4,5]]]) print(arr.cumsum(0)) # 結果 ''' [[[ 1 2 3] [ 8 9 12]] [[ 2 4 7] [10 13 17]]] ''' print(arr.cumsum(1)) # 結果 ''' [[[ 1 2 3] [ 9 11 15]] [[ 1 2 4] [ 3 6 9]]] ''' print(arr.cumsum(2)) # 結果 ''' [[[ 1 3 6] [ 8 17 29]] [[ 1 3 7] [ 2 6 11]]] ''' # groupby df=pd.DataFrame({'A':['age','bwr','age','bwr','dfd'],'B':[1,2,1,5,6],'C':[345,23,345,35,33]}) # 分組後並沒有進行計算,下面在'B'列求了平均 print(df.groupby('A')['B'].mean())