練習題目
Problem. 畫出每週平均作業分數¶
需求:
- 讀取 職訓生活觀察.csv
- 依照
週次分組 - 計算每週平均
作業分數 - 畫折線圖
# 參考答案:
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()