從生活應用了解Pandas - 篩選Excel資料
簡介
Panda 是 Python 用來分析資料的函式庫,名字來自”Panel Data”一詞,指的是經濟學中資料與時間關係的數據表。正如其名,Pandas正是用來分析縱橫資料表的好工具。本文會透過一些指令讓讀者發現一些生活中可以應用的情境
目錄:
名詞解釋
環境設定
情境介紹
應用範例
名詞解釋
本文為讓讀者可以應用生活中情境,故以 Excel作為處理範例,所以要先知道欄與列的差別
環境設定
因為Pandas 是python的函式庫,所以要先安裝python
Windows :
1. Python官網下載對應自己版本的 installer https://www.python.org/
2. 安裝完成後,開啟終端機輸入
python -- version
這時候有出現版本資訊就代表安裝成功
3. 確認python有安裝成功之後,於終端機輸入
Pip install pandas
Mac OS
1. 開啟終端機,本文建議使用 Homebrew 來安裝python,所以請先安裝Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. 使用Homebrew 指令安裝python
Brew install python
Mac 確認python有無安裝好的指令和 windows 有些微不同
Python3 –version
3. 確認python有安裝好之後,在mac上面安裝pandas
Pip3 install pandas
生活常見情境
先用一個常見的情境,讓大家熟悉一下
讀取檔案A,刪除指定欄位,另存為檔案B
import pandas as pd
input_file = "A.xlsx"
output_file = "B.xlsx"
df = pd.read_excel(input_file)
df.drop("想刪除的欄位名稱", axis=1, inplace=True)
df.to_excel(output_file, index=False)
下面介紹些常見的指令,有些細節會在文末補充
ㄧ 篩選資料
篩選特定欄位
df = df[['Column1', 'Column2', 'Column3']]
檔案有非常多欄位,但只要使用其中的幾個,就可以這樣篩選出來,不用手動慢慢刪
排序
df.sort_values(‘欲選取欄位名稱’, ascending=Ture)
依照欄位內容進行排序
Ascending = Fales 為降冪排列結果
二 選取資料
選取欄位(Column)
df[‘欲選取欄位名稱’] #選取單一欄位
df[[‘欲選取欄位名稱1’,’欲選取欄位名稱2’]] #選取複數欄位
選取列(Row)
df.iloc[0] #選取第一列
df.iloc[1] #選取第二列…依此類推
選取特定的格子,就是把兩種方式綜合起來
不過使用的是loc
df.loc['0', '欲選取欄位名稱']
loc vs iloc
loc 是以’名稱’為主的索引方式
value = df.loc['列名稱', '欄位名稱']
iloc是以’排序’為主的索引方式
value = df.iloc[0, 1] # 選取第一列第二欄的格子
三 刪除資料
刪除空白
df.dropna()
刪除多餘的重複值
df = df.drop_duplicates(keep='first')
keep 可寫可不寫,不寫的話會預設為 'first'
所以其實上面這行和下面這行是相同的
df = df.drop_duplicates()
以上都是預設針對 列(row) 進行動作
如同本文開頭所述,Pandas是用來分析表格及數據,通常縱軸 / 水平軸代表的值是單一且固定的(例如年代),幾乎不會出現重複的情況,所以duplicate語法並沒有應用在欄(Column) 的情境
不過移除空白欄(Column)還是可以的
df.dropna(axis=1)
四 匯出檔案
匯入 匯出成不同格式資料
df.to_excel('檔案名稱')
可以匯出成一些常見的格式:csv, sql, json, html, pickle 還有parquet等等..
五 應用範例
import pandas as pd
# 讀取檔案
data = pd.read_excel('File.xlsx')
# 刪掉重複的列值
data.drop_duplicates(inplace=True)
# 因為列值被刪了,剩下空白列,這邊把空白移除
data.dropna(inplace=True)
# 另存新檔
data.to_excel('Newfile.xlsx', index=False)
檔案名稱也可以改成檔案路徑喔!
總結
這篇文章簡單介紹了一些Pandas 常用到的指令,還有欄列的差異跟處理時要注意的地方,如果手上有很多雜亂的報表要處理的話,上面的指令可以協助你化繁為簡,還降低的手動整理時因為眼花造成的錯誤。