大数据毕业设计 校园学生一卡通数据分析与可视化 - python

2023-11-11

文章目录

0 项目简介

今天学长向大家介绍一个数据分析项目

基于大数据的高校校园学生一卡通数据分析

基于国内某高校校园一卡通系统一个月的运行数据,使用数据分析和建模的方法,挖掘数据中所蕴含的信息,分析学生在校园内的学习生活行为

任务 1数据导入与预处理

任务 1.1 探查数据质量并进行缺失值和异常值处理

1.1.1数据结构总览查看数据集项数,发现数据集data1.csv,有4341项,5列;数据集data2.csv,有519367 项,14列;数据集data3.csv,有43156项,6列

1.1.2检查重复值

通过去重操作发现三个数据集均无重复项

1.1.3数据内容总览

查看数据信息info(),发现data1和data3中均无缺失值 ,data2中termSerNo、conOperNo 存在较大量的缺失值,因为这两项数据对后续分析无影响故直接过滤

1.1.4数据分布总览

通过对数据Describe,查看数据的均值,最大值,最小值以及方差等数据特征,观察到data1
和data3中的特征值均较为合理,data2中的Money、FundMoney、Surplus以及 CardCount,均存在和样本群体偏离程度较大的数据,会影响后序模型的性能

1.1.5消费金额和消费次数观察消费金额和消费次数的散点图

发现数据中具有一定数量的离群点,将其过滤

在这里插入图片描述

1.1.6观察 CardCount 特征的分布情况

通过 distplot 和 kdeplot 绘制柱状图观察 CardCount 特征的分布情况,属于长尾类型的分布,这说明了有很多消费次数过多且超出正常范围。

在这里插入图片描述

任务2 食堂就餐行为分析

任务 2.1 绘制各食堂就餐人次的占比饼图,分析学生早中晚餐的就餐地点,是否有显著差别

在这里插入图片描述

在这里插入图片描述
根据图 1,综合早、午、晚三餐学生的就餐地点来看,34.44%的学生更偏爱去第二食堂,
26.16%的学生偏爱去第五食堂,第一、三、四食堂在学生的偏爱程度中属于一般水平,而只有 0.46%的学生在教师食堂就餐。
根据图 2,图 3,图 4 三图分析,学生对食堂的偏爱程度前三的食堂是:早餐:第二食堂 > 第五食堂 > 第一食堂午餐:第二食堂 > 第五食堂 > 第四食堂晚餐:第二食堂 > 第五食堂 > 第四食堂而学生用餐次数少的食堂(以用餐次数是否超过 10%为分界点)分别有:早餐:第四食堂、第三食堂、教师食堂午餐:教师食堂晚餐:教师食堂
综上,学生午晚两餐的用餐地点与综合三餐用餐地点分析比较,不存在显著差别;而学生的早餐用餐地点,选择第三、四食堂的占极少数,与综合三餐用餐地点有较为显著的差别。

任务 2.2 食堂刷卡记录

分别绘制工作日和非工作日食堂就餐时间曲线图,分析食堂早中晚餐的就餐峰值

在这里插入图片描述

从上图可以看出,工作日的就餐峰值均高于非工作日。工作日食堂早餐的就餐峰值为 60000次,非工作日为15000次;工作日食堂午餐的就餐峰值为90000次,非工作日为30000 次;工作日食堂晚餐的就餐峰值为17000次,非工作日为41000次。

出现该现象的主要原因在于工作日学生需要外出上课,直接前往食堂就餐的可能性更高,而非工作日学生由于直接在宿舍点外卖或者外出游玩就餐等原因导致前往食堂就餐的人数大幅减少。因此工作日食堂就餐峰值高于非工作日就餐峰值。

任务 2.3 根据上述分析的结果,为食堂的运营提供建议。

学校方面,应该根据学生的喜好程度合理安排食堂的场地、资金分配等资源,由2.1 可知,大部分学生偏爱去第二食堂和第五食堂,因此学校应给予第二食堂和第五食堂资源倾斜。
食堂方面,受偏爱的第二食堂和第五食堂应该进行菜品创新,形成顾客粘性。并且因为就餐学生多,食堂更应该合理安排食堂内的排队位置,提高排队效率。而就餐学生数偏少的第一、三、四食堂应该找出自身原因,采取例如提高食堂环境质量、增加菜品种类或提出促销活动等方法吸引学生群体。
此外,每个食堂在就餐峰值(分别为7点、11点、17点左右)应加大食堂人手,合理安排排队场所,提高排队效率,避免打饭效率低下,并且应在这三个高峰时间段内增加菜品供应量,避免供不应求。而在非高峰期,食堂可以适当减少菜品供应和食堂工作人员数量,从而减少食堂无用的运营成本。

任务 3学生消费行为分析

任务 3.1 分析不同专业间不同性别学生群体的消费特点。

3.3.1 本月人均刷卡频次和人均消费额

根据程序计算结果得出:本月人均消费频次为:72.74118014361537次本月人均消费额为:288.7773899469248元
考虑数据合理性,得出:本月人均消费频次越为:73次;本月人均消费额288.8元

3.3.2 选择 3 个专业,分析不同专业间不同性别学生群体的消费特点

3.3.2.1根据程序运行结果得出学生消费总额、消费次数总数、校园卡中余额的数据特征图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3.2.2根据程序运行结果得出学生消费总额、消费次数总数、校园卡中余额的柱状图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

从上图和上表可以得到不同专业的学生,计算机应用专业学生消费最频繁,国际金融专业学生单次消费金额最高,艺术设计专业学生卡内盈余最低。而不同专业的学生卡内盈余相差不大。出现该差异的可能原因在于计算机应用专业需要运用到电脑等电子设备,导致购买频繁。国际金融专业消费金额高可能是其运用专业知识赚钱所需。艺术设计专业学生卡内盈余最低可能是由于其日常在服装等上面的开销较大。
此外,我们可以得到不同专业间不同性别学生群体的消费特点。

首先是国际金融专业的学生。该专业女生消费频繁,男生单次消费金额高,卡内盈余金额近似。其次是艺术设计专业的学生。该专业女生消费频繁,男生单次消费金额高。男生卡内盈余金额高于女生。最后是计算机应用专业的学生。该专业男生消费频繁、单次消费金额高,并且男生盈余金额高于女生。
通过分析,出现性别上消费特点差异主要是由于男女性格原因。女生更偏好高频低费用的购买,享受消费的过程,因此消费次数多,每次都只是购买小额商品。而男生更偏好于低频高费用的购买,消费目的性强,虽不经常消费,但每次总是会消费较大额度。

任务 3.2 分析每一类学生群体的消费特点。

3.2.1 概述

为了将学生的整体校园消费行为进行分类,选择了当月消费总金额,消费次数,卡内存款作为特征进行聚类,采用的聚类算法为 k-means 算法(k-均值聚类算法)

3.2.2 k-means 算法简介
k-means 算法(k-均值聚类算法)是一种基本的已知聚类类别数的划分算法。它是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。它可以处理大数据集,且高效。它的输入自然是数据集和类别数。聚类结果是划分为 k 类的 k 个数据集。

3.2.3 过程
将学生的整体校园消费行为分为 4 类,因此将 k-means 算法中的 k 值取为 4,运用公式 data = 1.0*(data - data.mean())/data.std() 进行数据标准化,采用欧式距离作为度量,并画出每一项特征对应的数据直方图如下

在这里插入图片描述

3.2.4 聚类结果分析

根据学生在 4 月份的消费金额、卡内盈余与消费次数,我们将学生分成了四类群体,分别命名为 0,1,2,3.
学生群体 0 的消费特点为:该群体属于中等消费水平,有较高的消费潜力,这类学生群体应有较为良好的储蓄意识,属于滞后消费。
学生群体 1 的消费特点为:该群体属于高消费水平,但消费潜力较弱,这类学生群体的消费能力较高。
学生群体 2 的消费特点为:该群体属于低消费水平,且消费潜力较弱,这类学生群体的消费能力较弱。
学生群体 3 的消费特点为:该群体属于中等消费水平,消费潜力较弱,这类学生群体的储蓄意识较于学生群体 0 更弱。

任务 3.3 助学金评定

通过对低消费学生群体的行为进行分析,探讨是否存在某些特征,能为学校助学金评定提供参考。

在这里插入图片描述

根据分类所得的贫困生情况,我们首先针对贫困生的性别进行分析。由上图可看出,在已知的贫困生人数之中,超过半数的贫困生为女性。

在这里插入图片描述

根据分类所得的贫困生情况,对贫困生所在专业类别进行分析归纳。可发现,专业为理工科的学生中,贫困人口占比大;经管商科的学生中,贫困人口的占比数相较于理工科的会更少。而专业为艺术设计类的学生,贫困人口数量最少。

在这里插入图片描述

在这里插入图片描述

从上图可以看出贫困生的单次消费金额主要在 51-100 元之间,消费次数主要在 501-750 元之间,卡内盈余主要在 100-200 元之间。和其他类别学生相比,我们可以看出贫困生的消费次数、消费金额和卡内盈余均较低。
从上述分析我们可以看出,贫困人口有较大概率集中在性别为女,专业为理工科,日常消费次数、消费金额以及卡内盈余都较低的学生当中。因此,学校在评定奖助学金的过程中,可以根据学生的性别、专业和日常消费情况对学生的贫困背景进行一个初步的估计,为后面对学生群体贫困背景的详细调查,提供一个简单的基础。

4 关键代码

task1.py

import pandas as pd
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
import warnings

warnings.filterwarnings('ignore')
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
plt.style.use("fivethirtyeight")
sns.set_style({'font.sans-serif':['simhei','Arial']})
'''

任务 1.1 理解字段含义。探查数据质量并进行缺失值和异常值等
方面的必要处理。 

'''

# 导入数据
df1 = pd.read_csv('data1.csv', encoding='gbk')
df2 = pd.read_csv('data2.csv', encoding='gbk')
df3 = pd.read_csv('data3.csv', encoding='gbk')

# 数据信息总览
print('**************************************************')
print(df1.shape)
print('**************************************************')
print(df2.shape)
print('**************************************************')
print(df3.shape)
print('**************************************************')

print('未去重: ', df1.shape)
print('去重: ', df1.drop_duplicates().shape)

print('未去重: ', df2.shape)
print('去重: ', df2.drop_duplicates().shape)

print('未去重: ', df3.shape)
print('去重: ', df3.drop_duplicates().shape)


print('**************************************************')
print(df1.info())
print('**************************************************')
print(df2.info())
print('**************************************************')
print(df3.info())
print('**************************************************')


print('**************************************************')
print(df1.describe())
print('**************************************************')
print(df2.describe())
print('**************************************************')
print(df3.describe())
print('**************************************************')

'''

**************************************************
(4341, 5)
**************************************************
(519367, 14)
**************************************************
(43156, 6)
**************************************************


# 检查重复值

均无重复值


df1.describe().to_csv('data1_describe.csv')
df2.describe().to_csv('data2_describe.csv')
df3.describe().to_csv('data3_describe.csv')

'''
# 重新摆放列位置
columns = ['CardNo', 'Date', 'Money', 'FundMoney', 'Surplus', 'CardCount', 'Type', 'TermNo', 'OperNo',
           'Dept']
df2 = pd.DataFrame(df2, columns=columns)
#print(df2.head())

# 观察消费总额和消费次数之间的关系
#df2.to_csv('task1_1.csv')
#df_money_amount=df2.groupby('CardNo')['Money'].sum().sort_values(ascending=False).to_frame().reset_index()
#df_money_times=df2.groupby('CardNo')['CardCount'].max().sort_values(ascending=False).to_frame().reset_index()


#sns.regplot(x='Money',y='CardCount',data=df2)
#plt.show()


sns.distplot(df2['CardCount'],bins=100,color='r')
sns.kdeplot(df2['CardCount'],shade=True)
'''
通过 distplot 和 kdeplot 绘制柱状图观察 CardCount 特征的分布情况,属于长尾类型的分布,
这说明了有很多消费次数过多且超出正常范围。
也可能是年级较为高的学生
'''

plt.show()

task2.py

import pandas as pd
'''
任务 1.2 将 data1.csv 中的学生个人信息与 data2.csv 中的消费记录建立
关联,处理结果保存为“task1_2_1.csv”;将 data1.csv 中的学生个人信息与
data3.csv 中的门禁进出记录建立关联,处理结果保存为“task1_2_2.csv”。

'''
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
# 导入数据
df1 = pd.read_csv('data1.csv', encoding='gbk')
df2 = pd.read_csv('data2.csv', encoding='gbk')
df3 = pd.read_csv('data3.csv', encoding='gbk')

data1_2=df1.merge(df2,left_on='CardNo',right_on='CardNo')
data1_2.rename(columns={"Index_x": "Stu_Index"}, inplace=True)
data1_2.rename(columns={"Index_y": "Con_Index"}, inplace=True)
#print(data1_2.head())

data1_3=df1.merge(df3,left_on='AccessCardNo',right_on='AccessCardNo')
data1_3.rename(columns={"Index_x": "Stu_Index"}, inplace=True)
data1_3.rename(columns={"Index_y": "Acc_Index"}, inplace=True)
#print(data1_3.head())

data1_2.to_csv('task1_2_1.csv')
data1_3.to_csv('task1_2_2.csv')

其他代码,文章篇幅有限,略

最后

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据毕业设计 校园学生一卡通数据分析与可视化 - python 的相关文章

  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp

随机推荐

  • 2022-12-30 Ubuntu 运行qt creator提示qt.qpa.plugin: Could not load the Qt platform plugin “xcb“

    一 Ubuntu 运行qt creator提示qt qpa plugin Could not load the Qt platform plugin xcb qt qpa plugin Could not load the Qt platf
  • python弹球游戏彩蛋

    在上一期 我们已经实现了基本弹球的功能 先总结一下上期的代码 import pygame pygame init width 800 height 600 screen pygame display set mode width heigh
  • OpenGL ES2.0粒子系统(附有源码)

    http blog csdn net cxy200927099 article details 38584487 刚学OpenGL 2个多星期 也算是入门了吧 在看了老外写的书 OpenGL ES 2 for Android A Quick
  • 雅特力at421f串口2串口1互发透传

    void USART1 IRQHandler void static u8 k USART ClearFlag USART1 USART FLAG TC 清除USARTx的待处理标志位 if USART GetITStatus USART1
  • 目标检测:SSD算法原理综述

    SSD Single Shot Detection 是一个流行且强大的目标检测网络 网络结构包含了基础网络 Base Network 辅助卷积层 Auxiliary Convolutions 和预测卷积层 Predicton Convolu
  • NAT穿越原理——STUN

    STUN是RFC3489规定的一种NAT穿透方式 它采用辅助的方法探测NAT的IP和端口 毫无疑问的 它对穿越早期的NAT起了巨大的作用 并且还将继续在ANT穿透中占有一席之地 STUN的探测过程需要有一个公网IP的STUN server
  • Vscode中C++/c按F5调试不了,但是可以右键run code运行的问题

    V s c o d e 里 配
  • 想知道你的Mac是否支持macOS Monterey吗?

    Apple年度WWDC大会已经结束 在WWDC2021上宣布了新系统 macOS Monterey 它为Safari和Mail等应用带来了重大更新 你的Mac是否支持新系统呢 一起跟小编看看吧 https www macv com mac
  • Spark使用场景有哪些?大数据spark教程

    Spark 是一种与 Hadoop 相似的开源集群计算环境 是专为大规模数据处理而设计的快速通用的计算引擎 现已形成一个高速发展应用广泛的生态系统 主要应用场景如下 1 Spark是基于内存的迭代计算框架 适用于需要多次操作特定数据集的应用
  • typora笔记中图片路径批量修改成相对路径

    所有演示均在typora环境下 其他markdown软件不清楚是否都能用 使用之前建议备份一遍 防止出现问题 前置操作 打开typora 进入文件 gt 偏好设置 gt 图像 按照下面的图片勾选被填写图片相对路径 方便以后使用 相对路径 p
  • 【满分】【华为OD机试真题2023 JAVA&JS】分界线

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 分界线 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 电视剧 分界线 里面有一个片段 男主为了向警察透露案件细节 且不暴露自己 于是将报刊上的字剪切下来 剪拼成匿
  • [安洵杯 2019]easy_serialize_php

    安洵杯 2019 easy serialize php 本题考点 反序列化的字符串逃逸 变少 extract 变量覆盖 思考过程 首先代码审计可以看到几个关键点 function filter img filter arr array ph
  • 项目1-PM2.5预测

    文章目录 项目1 PM2 5预测 友情提示 项目描述 数据集介绍 项目要求 数据准备 环境配置 安装 预处理 提取特征 1 提取特征 2 归一化 将训练数据分割成 训练集 和 验证集 训练 测试 预测 保存预测到CSV文件 项目1 PM2
  • Gradle 的编译周期

    Project build gradle 多个Task 多个action 一个代码块 在编译过程中 Gradle 会根据 build 相关文件 聚合所有的project和task 执行task 中的 action 依赖逻辑 几乎所有的Tas
  • 2018网易前端实习笔试题

    前端时间做了网易前端实习的笔试题 偶像想起 总结一下 前面的选择题 我就不一一细说了 主要考察的是对于前端的基础 以及计算机基础 这次主要讲下算法题 所有算法我均用js所写 不同语言思路均相同 以下都是我对题目的简述 1 小易学了集合 已知
  • CTF show WEB7-8

    题目网站https ctf show web7 点开其中一篇文章 输入id 1 1存在全部文章内容 说明为整形注入 1 爆库名 web7 当输入为id 1 or ascii substr database 1 1 119时出现文章内容 证明
  • 如何制作 linux 系统 U盘启动盘

    原贴 如何制作 linux 系统 U盘启动盘 Will kkc的博客 CSDN博客 linux系统启动盘 1 制作linux 系统的U盘启动盘 需要选择ISO 模式 给大家推荐几个制作相关软件以及相关制作过程 UltraISO rufus
  • Nginx将日志输送到Rsyslog服务

    直接使用Nginx记录日志 在多台服务器的情况下日志会过于分散不容易管理 不过nginx在1 7 1版本以后 可以使用Rsyslog来记录日志 配置过程如下 一 Nginx配置文件 该配置也可以实现将nginx日志通过rsyslog服务输送
  • PHP中的正规表达式

    PHP继承 NIX的一贯传统 完全支持正规表达式的处理 正规表达式提供了一种高级的 但不直观的字符串匹配和处理的方法 用过PERL的正规表达式的朋友都知道 正规表达式的功能非常强大 但学起来不是那么容易 比如 这段有效却难以理解的代码足够使
  • 大数据毕业设计 校园学生一卡通数据分析与可视化 - python

    文章目录 0 项目简介 任务 1数据导入与预处理 任务 1 1 探查数据质量并进行缺失值和异常值处理 1 1 2检查重复值 1 1 3数据内容总览 1 1 4数据分布总览 1 1 5消费金额和消费次数观察消费金额和消费次数的散点图 1 1