跳轉到

練習題目

Problem. 畫出每週平均作業分數

需求:

# 參考答案:
import pandas as pd
import matplotlib.pyplot as plt

from utils import DATASET_PATH, setup_chinese_font

setup_chinese_font()

df = pd.read_csv(DATASET_PATH)
weekly_score = df.groupby("週次")["作業分數"].mean()

plt.figure(figsize=(8, 5))
plt.plot(weekly_score.index, weekly_score.values, marker="o")
plt.title("每週平均作業分數")
plt.xlabel("週次")
plt.ylabel("平均作業分數")
plt.grid(True, alpha=0.3)
plt.show()

Problem. 比較不同班別的平均期待薪資

需求:

  • 依照 班別 分組
  • 計算平均 期待薪資
  • 畫長條圖
  • 長條由高到低排序

參考答案:

# 參考答案:
import pandas as pd
import matplotlib.pyplot as plt

from utils import DATASET_PATH, setup_chinese_font

setup_chinese_font()

df = pd.read_csv(DATASET_PATH)
salary = df.groupby("班別")["期待薪資"].mean().sort_values(ascending=False)

plt.figure(figsize=(8, 5))
plt.bar(salary.index, salary.values, color="#457b9d")
plt.title("不同班別平均期待薪資")
plt.xlabel("班別")
plt.ylabel("平均期待薪資")
plt.xticks(rotation=15)
plt.tight_layout()
plt.show()

Problem. 學習時數與作業分數有關嗎?

需求:

  • x 軸放 學習時數
  • y 軸放 作業分數
  • 畫散佈圖
  • 加上標題、x 軸、y 軸

參考答案:

# 參考答案:
import pandas as pd
import matplotlib.pyplot as plt

from utils import DATASET_PATH, setup_chinese_font

setup_chinese_font()

df = pd.read_csv(DATASET_PATH)

plt.figure(figsize=(8, 5))
plt.scatter(df["學習時數"], df["作業分數"], alpha=0.7)
plt.title("學習時數與作業分數關係")
plt.xlabel("學習時數")
plt.ylabel("作業分數")
plt.grid(True, alpha=0.3)
plt.show()

觀察方向:

  • 如果點大多從左下往右上,代表學習時數越多,作業分數通常越高。
  • 如果點很分散,代表還有其他因素,例如基礎程度、練習品質、作業難度。

Problem. 心情狀態比例

需求:

  • 依照 心情狀態 統計筆數
  • 畫圓餅圖
  • 顯示百分比
# 參考答案:
import pandas as pd
import matplotlib.pyplot as plt

from utils import DATASET_PATH, setup_chinese_font

setup_chinese_font()

df = pd.read_csv(DATASET_PATH)
mood_counts = df["心情狀態"].value_counts()

plt.figure(figsize=(7, 7))
plt.pie(mood_counts.values, labels=mood_counts.index, autopct="%.1f%%")
plt.title("學員心情狀態比例")
plt.show()