iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
Python

讓Python不拍勝-實用套件實作與介紹系列 第 16

[DAY16]使用Python進行資料處理-Pandas(八)

  • 分享至 

  • xImage
  •  

今天將繼續上一篇沒有完成的 DataFrame 排序函數的示範以及 Pandas 統計函數的部分。

排序函數 .sort_index() 和 .sort_values() 的示範

DataFrame 的示範

建立 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)排序

  • 依照列索引(row)排序
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
  • 依照欄索引(column)排序
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 需要先指定索引,再依照被指定索引的值進行排序

  • 要特別注意,如果 by= 要指定列索引的話,要在後面加上 axis=1 才可以成功執行喔!
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 操作起來也不會差得太多

.sum() 用來計算元素的總合

透過 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

.mean() 用來計算元素的平均值

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

礙於篇幅的關係,下篇接著繼續介紹其他統計函數和其他應用。


上一篇
[DAY15]使用Python進行資料處理-Pandas(七)
下一篇
[DAY17]使用Python進行資料處理-Pandas(九)
系列文
讓Python不拍勝-實用套件實作與介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言