單元一 / 1-2

學完這一課,你能匯入 pandas、建立 Series 與 DataFrame,並用一行程式算出整欄的金額。

01匯入 pandas

每支 pandas 程式的第一行都是匯入套件。pd 是全世界通用的簡寫,照著寫就好。第二行讓中文欄位在輸出時對齊,建議每次都加上。

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)  # 中文欄位對齊

print(pd.__version__)   # 看看你的 pandas 版本

02Series:一欄有標籤的資料

Series 由兩部分組成:值(資料本身)和索引(每個值的標籤)。這裡用品項名稱當索引、單價當值。

s = pd.Series([65, 60, 40], index=['珍珠奶茶', '紅茶拿鐵', '四季春'])
print(s)

執行結果

珍珠奶茶    65
紅茶拿鐵    60
四季春      40
dtype: int64

最後一行的 dtype: int64 是資料型別,代表這欄是整數。用索引就能取出單一的值:

print(s['四季春'])   # 40

03DataFrame:多欄組成的表格

最常見的建立方式是傳入一個字典,鍵是欄名、值是那一欄的資料。每一欄的資料筆數要一樣多。

df = pd.DataFrame({
    '品項': ['珍珠奶茶', '紅茶拿鐵', '四季春'],
    '單價': [65, 60, 40],
    '杯數': [2, 1, 3],
})
print(df)

執行結果

       品項  單價  杯數
0  珍珠奶茶    65     2
1  紅茶拿鐵    60     1
2    四季春    40     3

最左邊的 0、1、2 是 pandas 自動加上的索引(index),可以想成 Excel 的列號。在 Colab 裡,如果儲存格最後一行直接寫 df(不加 print),會顯示成更好看的表格。

04整欄一起計算

這是 pandas 最強大的地方:兩欄直接相乘,pandas 會一列一列對應計算,不需要寫迴圈。

df['金額'] = df['單價'] * df['杯數']   # 新增一欄
print(df)
print('總營收:', df['金額'].sum())

執行結果

       品項  單價  杯數  金額
0  珍珠奶茶    65     2   130
1  紅茶拿鐵    60     1    60
2    四季春    40     3   120
總營收: 310

05Series 與 DataFrame 的關係

Series

一欄資料+索引。像 Excel 裡的「一整欄」。取 DataFrame 的某一欄,得到的就是 Series。

DataFrame

多個 Series 並排、共用同一組索引。像 Excel 的「一張工作表」。

Series:品項+Series:單價+Series:杯數→DataFrame
print(type(df))          # DataFrame
print(type(df['單價']))   # 取出一欄 → Series

生活類比

把 DataFrame 想成一張班級成績單:每一欄(國文、數學、英文)都是一個 Series,左邊的座號就是索引。抽出「數學」那一欄,你拿到的仍然有座號對應,這就是 Series。

本課重點

  1. import pandas as pd 是固定開頭。
  2. Series 是「值+索引」的一欄資料;DataFrame 是多欄組成的表格。
  3. 用字典建立 DataFrame:鍵是欄名、值是該欄資料。
  4. 整欄運算不用寫迴圈,例如 df['單價'] * df['杯數']。