Pandas Excel Any Analyze Filter Sort Drop 刪除空白 重新排序 大量編輯

從生活應用了解Pandas - 篩選Excel資料

張庭瑋 Gary Chang 2023/08/02 16:59:23
1483

簡介

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 常用到的指令,還有欄列的差異跟處理時要注意的地方,如果手上有很多雜亂的報表要處理的話,上面的指令可以協助你化繁為簡,還降低的手動整理時因為眼花造成的錯誤。

張庭瑋 Gary Chang