WeHelp
如何處理 Pandas DataFrame ( 2/3 )
2022-09-12 14:36:35
今天我將接著上篇沒說完的其他Pandas 用法,但專注於以下幾個功能: **排序**、**修改**、**刪除** 。 ___ # 基本要求 1. 已安裝Python3 和 pandas 模組,或是可以使用其他軟件(Google Colab, Jupyter Notebook etc.)。 2. 已知道Python的基本操作(例如:如何宣告一個變數,並且給予一個值 等等) 。 # 將說明以下 Pandas 基本觀念&操作 - 如何排序 DataFrame 數據 - 如何修改 DataFrame 數據 - 如何刪除 DataFrame 數據 ### 如何排序 DataFrame 數據 對於排序功能來說,有兩種常見的功能 `sort_index()`, `sort_values()` 看名稱 你應該大約知道他們的功能(這也是Python的優勢),那我們直接來試試看他們的用法吧! 假設你想將所有資料排序做一個上下顛倒 ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("資料做一個遞減排序") print(df.sort_index(ascending=False)) ``` 執行後結果 ![image](wehelp-storage://8be29ac923343d06bcc4a9602591ef17) 又或者你想按姓名做一個遞增排序 ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("姓名做一個遞增排序") print(df.sort_values(['Name'], ascending=True)) ``` 執行後結果 ![image](wehelp-storage://7b466fadf4c60653f589f99f6e3b6f11) 我們還可以做更進階一點的多欄位排序 假設先將年紀做遞減排序,再將語言做遞增排序 ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("年紀遞減後 姓名遞增") # 0=>False 1=>Ture print(df.sort_values(['Age', 'Name'], ascending=[0, 1])) ``` 執行後結果 ![image](wehelp-storage://dce1d22214b9646d739f8cdd731ec952) ### 如何修改 DataFrame 數據 以下將介紹兩種不同的方式去修改資料: 如果想將特定單一資料修改,可以使用 `at[]` 取得資料在做修改的動作 假設想將Wilson所說的語言改成 German ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("更改Wilson的語言為German") df.at[0, "Languages"] = "German" # at[row, column] print(df) ``` 執行後結果 ![image](wehelp-storage://b7b66456d7fe30af8af6ae0cff063bbb) 再來也可以先篩選再修改資料 假設想把所有18歲同學的語言都改為Polish ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("更改Wilson的語言為German") df.loc[df["Age"] == 18, "Languages"] = "Polish" print(df) ``` 執行後結果 ![image](wehelp-storage://eee019abe614f730f17fa7bbe8488532) ### 如何刪除 DataFrame 數據 對於刪除的部分,其實有許多不同的方式,這邊我將介紹如何使用drop() 去刪除重複或是是空值的資料。 假設我們想刪除重複值的人 ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("刪除重複值的人") new_df = df.drop_duplicates() print(new_df) ``` 執行後結果 ![image](wehelp-storage://04f2434109c7d3de83dd2b7fed5171db) 另外也可以將不想的 column 刪除 假設,想刪除欄位 Age ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("刪除欄位 Age") print(df.drop(["Age"], axis = 1)) # axis => 0:row, 1:column ``` 執行後結果 ![image](wehelp-storage://9fd26a3a1d73829e7d15c83e2d0c1ba4) 最後還有一個情況,是大家最常遇到 ”空值” 情況,可以使用 dropna() 功能去除空值 ``` import pandas as pd df = pd.read_csv("file_name.csv") print("全部資料") print(df) print() print("刪除 Nan 後") print(df.dropna()) ``` 執行後結果 ![image](wehelp-storage://4c92c88b86ca053bbc3344bd600bb6b7) 現在就來把今天的內容總結一下吧 ### 小總結 今天說明了 **排序** **修改** **刪除** ,都是在進行資料清理時常常使用的一些基本方法,加上經過上一篇 Pandas (1/3) 洗禮後,是否迫不及待動手試試看呢! 在下一篇文章,我將說明如何使用 ⇒ **Groupby**、**儲存和匯出** ,並且會給一個小任務喔 ~ 試試看你對 Pandas的熟練成度喔 ! 如果你喜歡這篇文章 記得給個讚喔 ^ ^