今天將繼續上一篇沒有完成的 DataFrame 排序函數的示範以及 Pandas 統計函數的部分。
建立 DataFrame 物件
dict_ = {'guitar': [2, 3, 4], 'bass': [7, 6, 5], 'keyboard': [8, 9, 10]}
instrument = pd.DataFrame(dict_, index=['A', 'B', 'C'])
print(instrument)
輸出結果
guitar bass keyboard
A 2 7 8
B 3 6 9
C 4 5 10
.sort_index() 的示範
DataFrame 和 Series 不一樣的地方在於,DataFrame 是二維的物件,所以可以選擇要依照列索引(row)排序,還是依照欄索引(column)排序
print('#1')
print(instrument.sort_index())
print('\n#2')
print(instrument.sort_index(ascending=False))
輸出結果
#1
guitar bass keyboard
A 2 7 8
B 3 6 9
C 4 5 10
#2
guitar bass keyboard
C 4 5 10
B 3 6 9
A 2 7 8
print('#1')
print(instrument.sort_index(axis=1))
print('\n#2')
print(instrument.sort_index(axis=1, ascending=False))
輸出結果
#1
bass guitar keyboard
A 7 2 8
B 6 3 9
C 5 4 10
#2
keyboard guitar bass
A 8 2 7
B 9 3 6
C 10 4 5
.sort_values() 的示範
這邊的操作也和 Series 不太一樣,DataFrame 需要先指定索引,再依照被指定索引的值進行排序
print('#1')
print(instrument.sort_values(by='A', axis=1))
print('\n#2')
print(instrument.sort_values(by='C', axis=1, ascending=False))
print('\n#3')
print(instrument.sort_values(by='guitar'))
print('\n#4')
print(instrument.sort_values(by='keyboard', ascending=False))
輸出結果
#1
guitar bass keyboard
A 2 7 8
B 3 6 9
C 4 5 10
#2
keyboard bass guitar
A 8 7 2
B 9 6 3
C 10 5 4
#3
guitar bass keyboard
A 2 7 8
B 3 6 9
C 4 5 10
#4
guitar bass keyboard
C 4 5 10
B 3 6 9
A 2 7 8
排序的部分就先簡單介紹到這裡,接下來接著介紹 Pandas 提供的統計函數吧!
接下來介紹經常會在 Pandas 用到的統計函數,這個部分的話我用 DataFrame 的物件來做示範,但 Series 操作起來也不會差得太多
透過 axis 的參數來決定列或欄的總合,下面是三種不同求和方式的範例
print('#1')
print(instrument.sum())
print('\n#2')
print(instrument.sum(axis=1))
print('\n#3')
print(instrument.sum().sum())
輸出結果
#1
guitar 9
bass 18
keyboard 27
dtype: int64
#2
A 17
B 18
C 19
dtype: int64
#3
54
print('#1')
print(instrument.mean())
print('\n#2')
print(instrument.mean(axis=1))
print('\n#3')
print(instrument.mean().mean())
輸出結果
#1
guitar 3.0
bass 6.0
keyboard 9.0
dtype: float64
#2
A 5.666667
B 6.000000
C 6.333333
dtype: float64
#3
6.0
礙於篇幅的關係,下篇接著繼續介紹其他統計函數和其他應用。