Series 單維度資料
# Pandas Series 簡介
`Series` 是 Pandas 中的**單維度資料結構**,可以想成:
- 一欄資料
- 每筆資料都有一個索引(`index`)
- 類似 Python 的 `list`,但多了索引與資料型別管理功能
一個 Series 通常包含:
```text
index value
------ -----
a 10
b 20
c 30
```
使用 Pandas 前要使用以下程式載入:
```python
import pandas as pd
```
---
## 一、建立 Series 的常見方式
### 1. 使用 Python List 建立
```python
s = pd.Series([10, 20, 30])
print(s)
```
輸出:
```text
0 10
1 20
2 30
dtype: int64
```
若沒有指定索引,Pandas 會自動建立從 `0` 開始的整數索引。
---
### 2. 使用自訂索引建立
```python
s = pd.Series(
[80, 90, 75],
index=["國文", "英文", "數學"]
)
print(s)
```
輸出:
```text
國文 80
英文 90
數學 75
dtype: int64
```
---
### 3. 使用 Python 字典建立
字典的 key 會成為索引,value 會成為資料:
```python
scores = {
"國文": 80,
"英文": 90,
"數學": 75
}
s = pd.Series(scores)
print(s)
```
這是建立具有意義索引的 Series 常見方式。
---
### 4. 使用單一值搭配索引建立
```python
s = pd.Series(0, index=["A", "B", "C"])
print(s)
```
輸出:
```text
A 0
B 0
C 0
dtype: int64
```
每個索引位置都會填入相同的值。
---
### 5. 指定資料型別
```python
s = pd.Series([1, 2, 3], dtype="float64")
print(s)
```
結果會以浮點數儲存:
```text
0 1.0
1 2.0
2 3.0
dtype: float64
```
---
## 二、Series 的索引操作
假設有以下 Series:
```python
s = pd.Series(
[80, 90, 75],
index=["國文", "英文", "數學"]
)
```
### 1. 使用索引標籤取值
```python
print(s["英文"])
```
輸出:
```text
90
```
也可以一次取出多個索引:
```python
print(s[["國文", "數學"]])
```
---
### 2. 使用位置索引取值:`iloc`
`iloc` 根據資料的位置取值,位置從 `0` 開始:
```python
print(s.iloc[0]) # 第一筆
print(s.iloc[-1]) # 最後一筆
print(s.iloc[0:2]) # 位置 0 到 1
```
輸出概念如下:
```text
80
75
國文 80
英文 90
dtype: int64
```
---
### 3. 使用索引標籤取值:`loc`
`loc` 根據索引標籤取值:
```python
print(s.loc["國文"])
print(s.loc[["國文", "數學"]])
```
也可以進行標籤切片:
```python
print(s.loc["國文":"英文"])
```
在 Pandas 中,標籤切片通常會包含結束位置,因此會包含「英文」。
---
### 4. 使用布林條件篩選
```python
print(s[s >= 80])
```
輸出:
```text
國文 80
英文 90
dtype: int64
```
也可以搭配 `loc`:
```python
print(s.loc[s >= 80])
```
---
### 5. 修改資料
```python
s["數學"] = 85
print(s)
```
也可以透過位置修改:
```python
s.iloc[0] = 88
```
---
### 6. 新增資料
```python
s["自然"] = 92
print(s)
```
---
### 7. 刪除資料
```python
s = s.drop("英文")
print(s)
```
`drop()` 預設會回傳新的 Series,不會直接修改原本物件。若要直接修改,可以使用:
```python
s.drop("數學", inplace=True)
```
---
## 三、常用屬性與方法
```python
s.index # 查看索引
s.values # 查看資料內容
s.dtype # 查看資料型別
s.size # 資料筆數
s.shape # Series 形狀
s.head() # 前幾筆資料
s.tail() # 後幾筆資料
s.mean() # 平均值
s.sum() # 總和
s.max() # 最大值
s.min() # 最小值
```
例如:
```python
print(s.mean())
```
---
## 總結
Series 的核心特色包括:
1. 儲存單維度資料。
2. 每筆資料都有索引。
3. 可使用標籤索引或位置索引存取資料。
4. 支援條件篩選、統計運算與缺失值處理。
5. 是 Pandas `DataFrame` 中每一欄的基本組成單位。
常見索引方式可簡單整理如下:
```python
s["索引名稱"] # 依標籤取值
s.loc["索引名稱"] # 明確依標籤取值
s.iloc[0] # 依位置取值
s[s > 10] # 條件篩選
```
相關學習地圖、教學課程
Python 資料工程