如何處理 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))
```
執行後結果

又或者你想按姓名做一個遞增排序
```
import pandas as pd
df = pd.read_csv("file_name.csv")
print("全部資料")
print(df)
print()
print("姓名做一個遞增排序")
print(df.sort_values(['Name'], ascending=True))
```
執行後結果

我們還可以做更進階一點的多欄位排序
假設先將年紀做遞減排序,再將語言做遞增排序
```
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]))
```
執行後結果

### 如何修改 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)
```
執行後結果

再來也可以先篩選再修改資料
假設想把所有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)
```
執行後結果

### 如何刪除 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)
```
執行後結果

另外也可以將不想的 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
```
執行後結果

最後還有一個情況,是大家最常遇到 ”空值” 情況,可以使用 dropna() 功能去除空值
```
import pandas as pd
df = pd.read_csv("file_name.csv")
print("全部資料")
print(df)
print()
print("刪除 Nan 後")
print(df.dropna())
```
執行後結果

現在就來把今天的內容總結一下吧
### 小總結
今天說明了 **排序** **修改** **刪除** ,都是在進行資料清理時常常使用的一些基本方法,加上經過上一篇 Pandas (1/3) 洗禮後,是否迫不及待動手試試看呢!
在下一篇文章,我將說明如何使用 ⇒ **Groupby**、**儲存和匯出** ,並且會給一個小任務喔 ~ 試試看你對 Pandas的熟練成度喔 !
如果你喜歡這篇文章 記得給個讚喔 ^ ^
點擊複製文章連結
X