iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Python

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

[DAY12]使用Python進行資料處理-Pandas(四)

  • 分享至 

  • xImage
  •  

前面介紹過 Sereis 和 DataFrame 這兩個物件了,Pandas 另外還有提供 Panal 這個物件來處理多維的資料,但因為不常用到所以這裡就不介紹了,但整體操作上大同小異。

今天要來教大家的是如何在 Series 和 DataFrame 上面做元素的操作。

將物件索引重新排列、新增和刪除索引

重新排列列(row)索引

new_index = ['B', 'A', 'C']
print(instrument.reindex(new_index))

輸出結果

   guitar  bass  cajon
B       3     6      9
A       2     5      8
C       4     7     10

重新排列欄(column)索引

new_column = ['bass', 'guitar', 'cajon']
print(instrument.reindex(columns=new_column))

輸出結果

   bass  guitar  cajon
A     5       2      8
B     6       3      9
C     7       4     10

新增列(row)索引

new_index = ['A', 'B', 'C', 'D']
print(instrument.reindex(new_index))

輸出結果

   guitar  bass  cajon
A     2.0   5.0    8.0
B     3.0   6.0    9.0
C     4.0   7.0   10.0
D     NaN   NaN    NaN

新增欄(column)索引

new_column = ['guitar', 'bass', 'cajon', 'violin']
print(instrument.reindex(columns=new_column))

輸出結果

   guitar  bass  cajon  violin
A       2     5      8     NaN
B       3     6      9     NaN
C       4     7     10     NaN

刪除指定的列(row)索引

print(instrument.drop(['A']))

輸出結果

   guitar  bass  cajon
B       3     6      9
C       4     7     10

刪除指定的欄(column)索引

print(instrument.drop(columns=['guitar']))

輸出結果

   bass  cajon
A     5      8
B     6      9
C     7     10

在指定的位置插入資料(僅能用在DataFrame)

要注意這個函數會直接改變原本的物件喔!

#DataFrame.insert(想插入的位置, 索引名稱, data)
instrument.insert(1, 'drum', [11, 12, 13])
print(instrument)

輸出結果

   guitar  drum  bass  cajon
A       2    11     5      8
B       3    12     6      9
C       4    13     7     10

連接多個物件

先建立一個新物件

data = pd.DataFrame({'cajon':[14, 15]}, index=['D', 'E'])
print(data)

輸出結果

   cajon
D     14
E     15

進行兩物件的合併

#pd.concat(要合併的物件, axis=0, ignore_index=False)
#可以選擇要依照哪個軸進行合併,預設為axis=0
#可以選擇合併後是否要保留原本的索引,預設為保留ignore_index=False
combine = pd.concat([instrument, data]) 
print(combine)

輸出結果

#可以從輸出結果看到成功合併囉,合併後沒有值的地方會用缺失值(NaN)自動補上
   guitar  drum  bass  cajon 
A     2.0  11.0   5.0      8
B     3.0  12.0   6.0      9
C     4.0  13.0   7.0     10
D     NaN   NaN   NaN     14
E     NaN   NaN   NaN     15

更多Pandas的教學再下一篇繼續喔!


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

尚未有邦友留言

立即登入留言