1 ,盒圖,意義 : 中位數
- 將數據排序 : 從小到大排序
- 取到 3 個值 : 1/4 處,2/4 處 ,3/4 處
- 1/2 處 : 實際上就是中位數
- 中位數 :
1 ,不是 :數據最大值的一半
2 ,而是 :排名中間的那個位置的數據
3 ,本質 : 是排名,不是數據
2 ,盒圖,單盒 : boxplot
- 目的 : 泰坦尼克號,年齡統計
- 代碼 :
if __name__ == '__main__':
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.color'] = "red"
plt.rcParams['lines.linestyle'] = "-"
data = pd.read_csv("titanic_train.csv")
data = data["Age"].dropna()
plt.boxplot(data,labels=["年齡01"])
plt.xlabel("年齡盒圖")
plt.tight_layout()
plt.show()
- 結果 :
3 ,盒圖,多盒 :
- 目的 : 不同倉位等級的平均年齡
- 代碼 :
if __name__ == '__main__':
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.color'] = "red"
plt.rcParams['lines.linestyle'] = "-"
data = pd.read_csv("titanic_train.csv")
data = data[["Pclass","Age"]].dropna()
data01 = data[data["Pclass"]==1]["Age"]
data02 = data[data["Pclass"]==2]["Age"]
data03 = data[data["Pclass"]==3]["Age"]
data_new = pd.DataFrame(columns=["Age01","Age02","Age03"])
data01 = data01.reset_index()["Age"]
data02 = data02.reset_index()["Age"]
data03 = data03.reset_index()["Age"]
data_new["Age01"] = data01
data_new["Age02"] = data02
data_new["Age03"] = data03
data_new["Age01"] = data_new["Age01"].fillna(data_new["Age01"].mean())
data_new["Age02"] = data_new["Age02"].fillna(data_new["Age02"].mean())
data_new["Age03"] = data_new["Age03"].fillna(data_new["Age03"].mean())
print(data_new)
plt.boxplot(data_new.values,labels=["一等艙","二等艙","三等艙"])
plt.xlabel("年齡盒圖")
plt.tight_layout()
plt.show()
- 結果 :