freeCodeCamp/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-p.../medical-data-visualizer.md

91 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: 5e46f7f8ac417301a38fb92a
title: 醫療數據可視化工具
challengeType: 10
forumTopicId: 462368
dashedName: medical-data-visualizer
---
# --description--
你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-medical-data-visualizer)來完成本項目。
我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。
- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)14 小時)
- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)10 小時)
# --instructions--
在本項目中,您將使用 matplotlib、seaborn 和 pandas 來對體檢數據進行可視化和計算。 數據集的數值是從體檢中收集的。
## 數據說明
數據集中的行代表患者,列代表身體測量、各種血液檢查的結果和生活方式等信息。 您將使用該數據集來探索心臟病、身體測量數據、血液標誌物和對生活方式的選擇之間的關係。
文件名medical_examination.csv
| 項目 | 變量類型 | 變量名 | 變量值類型 |
|:--------:|:----:|:-----------:|:---------------------:|
| 年齡 | 客觀特徵 | age | int (days) |
| 身高 | 客觀特徵 | height | int (cm) |
| 體重 | 客觀特徵 | weight | float (kg) |
| 性別 | 客觀特徵 | gender | 分類編碼 |
| 收縮壓 | 檢測特徵 | ap_hi | int |
| 舒張壓 | 檢測特徵 | ap_lo | int |
| 膽固醇 | 檢測特徵 | cholesterol | 1正常2高於正常3遠遠高於正常值 |
| 血糖值 | 檢測特徵 | gluc | 1正常2高於正常3遠遠高於正常值 |
| 吸菸問題 | 主觀特徵 | smoke | binary |
| 飲酒量 | 主觀特徵 | alco | binary |
| 體育活動 | 主觀特徵 | active | binary |
| 是否有心血管疾病 | 目標變量 | cardio | binary |
## 任務
創建一個類似於 `examples/Figure_1.png` 的圖表,其中我們顯示 `cholesterol`、`gluc`、`alco`、`active` 和 `smoke` 變量,用於不同面板中 heart=1 和 heart=0 的患者。
`medical_data_visualizer.py` 中使用數據完成以下任務:
- 給數據添加一列 `overweight`。 要確定一個人是否超重,首先通過將他們的體重(公斤)除以他們的身高(米)的平方來計算他們的 BMI。 如果該值 > 25則此人超重。 使用值 0 表示不超重,使用值 1 表示超重。
- 使用 0 表示好的和 1 表示壞,來規範化數據。 如果 `cholesterol``gluc` 的值爲 1則將值設爲 0。 如果值大於 1則將值設爲 1。
- 將數據轉換爲長格式並使用 seaborn 的 `catplot()` 創建一個顯示分類特徵值計數的圖表。 數據集應按“Cardio”拆分因此每個 `cardio` 值都有一個圖表。 該圖表應該看起來像 `examples/Figure_1.png`
- 清理數據。 過濾掉以下代表不正確數據的患者段:
- 舒張壓高於收縮壓(使用 `(df['ap_lo'] <= df['ap_hi'])` 保留正確的數據)
- 高度小於第 2.5 個百分位數(使用 `(df['height'] >= df['height'].quantile(0.025))` 保留正確的數據)
- 身高超過第 97.5 個百分位
- 體重小於第 2.5 個百分位
- 體重超過第 97.5 個百分位
- 使用數據集創建相關矩陣。 使用 seaborn 的 `heatmap()` 繪製相關矩陣。 遮罩上三角。 該圖表應類似於 `examples/Figure_2.png`
每當變量設置爲 `None` 時,請確保將其設置爲正確的代碼。
單元測試是在 `test_module.py` 下爲你編寫的。
## 開發
對於開發,你可以使用 `main.py` 來測試你的函數。 單擊“運行”按鈕,`main.py` 將運行。
## 測試
爲了你的方便,我們將測試從 `test_module.py` 導入到 `main.py`。 只要你點擊“運行”按鈕,測試就會自動運行。
## 提交
複製項目的 URL 並將其提交給 freeCodeCamp。
# --hints--
它應該通過所有的 Python 測試。
```js
```
# --solutions--
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```