分享一套【优质Python源码】基于Python的学生心理健康数据分析可视化(Pandas+matplotlib)

0 阅读1小时+

大家好,我是python222_小锋老师,分享一套优质的基于Python的学生心理健康数据分析可视化(Pandas+matplotlib)  。  

1.jpg

项目简介

随着社会变革的步伐不断加快,学生心理健康问题成为教育体系中一项日益严峻的挑战。现代学生面临着前所未有的多样性压力,包括但不限于:

  1. 学业压力: 教育制度的竞争性和标准化导致学生承受着巨大的学业压力,从早期教育一直延续到高等教育阶段。

  2. 社交挑战: 社交媒体的普及使学生更容易受到同辈和社会的评判,同时也增加了社交关系的复杂性。

  3. 家庭期望: 家庭对于学业成就和职业发展的期望可能对学生形成额外的压力。

  4. 数字化时代的影响: 科技的快速发展给学生带来了新的挑战,例如沉迷于屏幕、社交媒体焦虑等问题。

在这个背景下,深入了解学生心理健康状况,探索潜在的影响因素,以及寻找有效的干预和支持措施变得至关重要。本项目将通过数据可视化的方式,为学生心理健康问题提供更全面、深入的认识,以期促使更有针对性的干预和社会支持。

源码下载

链接: pan.baidu.com/s/14Q45c1Vi…

提取码: 1234

相关截图

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

核心代码

{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0e0673f8",
   "metadata": {},
   "source": [
    "1.获取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "f6fa62f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 7022 entries, 0 to 7021\n",
      "Data columns (total 19 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   年龄      7022 non-null   int64  \n",
      " 1   课程      7022 non-null   object \n",
      " 2   性别      7022 non-null   object \n",
      " 3   平均绩点    7010 non-null   float64\n",
      " 4   压力水平    7022 non-null   int64  \n",
      " 5   抑郁水平    7022 non-null   int64  \n",
      " 6   焦虑水平    7022 non-null   int64  \n",
      " 7   睡眠质量    7022 non-null   object \n",
      " 8   活动水平    7022 non-null   object \n",
      " 9   饮食质量    7022 non-null   object \n",
      " 10  社会支持    7022 non-null   object \n",
      " 11  关系状态    7022 non-null   object \n",
      " 12  物质使用    7007 non-null   object \n",
      " 13  咨询服务    7022 non-null   object \n",
      " 14  家族史     7022 non-null   object \n",
      " 15  慢性疾病    7022 non-null   object \n",
      " 16  经济压力    7022 non-null   int64  \n",
      " 17  课外活动    7022 non-null   object \n",
      " 18  居住类型    7022 non-null   object \n",
      "dtypes: float64(1), int64(5), object(13)\n",
      "memory usage: 1.0+ MB\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>年龄</th>\n",
       "      <th>平均绩点</th>\n",
       "      <th>压力水平</th>\n",
       "      <th>抑郁水平</th>\n",
       "      <th>焦虑水平</th>\n",
       "      <th>经济压力</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>7022.000000</td>\n",
       "      <td>7010.00000</td>\n",
       "      <td>7022.000000</td>\n",
       "      <td>7022.000000</td>\n",
       "      <td>7022.000000</td>\n",
       "      <td>7022.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>23.003418</td>\n",
       "      <td>3.49127</td>\n",
       "      <td>2.427941</td>\n",
       "      <td>2.254486</td>\n",
       "      <td>2.300484</td>\n",
       "      <td>2.453005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.853978</td>\n",
       "      <td>0.28742</td>\n",
       "      <td>1.638408</td>\n",
       "      <td>1.625193</td>\n",
       "      <td>1.624305</td>\n",
       "      <td>1.708995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>18.000000</td>\n",
       "      <td>2.44000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>20.000000</td>\n",
       "      <td>3.29000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>22.000000</td>\n",
       "      <td>3.50000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>25.000000</td>\n",
       "      <td>3.70000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>4.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>35.000000</td>\n",
       "      <td>4.00000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                年龄        平均绩点         压力水平         抑郁水平         焦虑水平  \\\n",
       "count  7022.000000  7010.00000  7022.000000  7022.000000  7022.000000   \n",
       "mean     23.003418     3.49127     2.427941     2.254486     2.300484   \n",
       "std       3.853978     0.28742     1.638408     1.625193     1.624305   \n",
       "min      18.000000     2.44000     0.000000     0.000000     0.000000   \n",
       "25%      20.000000     3.29000     1.000000     1.000000     1.000000   \n",
       "50%      22.000000     3.50000     2.000000     2.000000     2.000000   \n",
       "75%      25.000000     3.70000     4.000000     3.000000     4.000000   \n",
       "max      35.000000     4.00000     5.000000     5.000000     5.000000   \n",
       "\n",
       "              经济压力  \n",
       "count  7022.000000  \n",
       "mean      2.453005  \n",
       "std       1.708995  \n",
       "min       0.000000  \n",
       "25%       1.000000  \n",
       "50%       2.000000  \n",
       "75%       4.000000  \n",
       "max       5.000000  "
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import sys\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "plt.rcParams['font.family']=['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "#获取数据\n",
    "data = pd.read_csv(\"students_mental_health_survey.csv\")\n",
    "#data.head(5)\n",
    "#修改列名,方便理解与分析\n",
    "data.columns = ['年龄', '课程', '性别', '平均绩点', '压力水平', '抑郁水平', '焦虑水平', '睡眠质量', '活动水平', '饮食质量', '社会支持','关系状态', '物质使用', '咨询服务', '家族史', '慢性疾病', '经济压力', '课外活动', '学期学分数', '居住类型']\n",
    "#删除无用列\n",
    "data=data.drop(columns=\"学期学分数\")\n",
    "data.head()\n",
    "data.info()\n",
    "data.describe()"
 
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}