一般来说这部分的考核主要是,考察你们的Python 爬虫(在没有数据的情况下)、Python pandas 基础数据分析、matplotlib 绘制直方图、饼状图、散点图和误差线图等多种图形,我总结了一下:
数据爬取和抓取技术,如爬虫、API调用等; 数据清洗和预处理技术,如数据去重、缺失值处理、异常值处理等。
数据处理工具,如Python的Pandas等; 数据转换和整合技术,如数据合并、数据透视表等; 统计分析技术,如描述性统计、假设检验、回归分析,做个预测之类
可视化工具和库,如Tableau、Matplotlib、ggplot2等; 图表和图形设计技巧,如选择合适的图表类型、颜色搭配等; 交互式可视化技术,如使用JavaScript库实现动态和可交互的图表。
如果是普通的结课大作业已经够用了,但是作为项目来说的话,还需要搭建前后端网站,避免存在任务量不饱和的情况。
示例为:基于Python的电影售票大数据分析
电影数据分析网站的开发流程可以分为以下几个步骤,使用Python的相关框架进行开发:
注:本部分代码为伪代码
import requests
from bs4 import BeautifulSoup
from lxml import html
etree = html.etree
import csv
# 请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}
hrefs = []
# 爬取豆瓣电影TOP250的url
# 获取电影详情页url
def get_film_url(url):
try:
r = requests.get(url, headers=headers)
selector = etree.HTML(r.text)
movie_hrefs = selector.xpath('//div[@class="hd"]/a/@href') # 电影的详情地址
for i in range(0, len(movie_hrefs)):
hrefs.append(movie_hrefs[i])
except Exception as e:
print(e)
# 保存电影链接url
def save_url():
try:
# 获取链接
for href in hrefs:
# 存入csv
file_path = "./豆瓣电影TOP250链接.csv"
with open(file_path, "a+", newline='', encoding='gb18030') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([href])
except Exception as e:
print(e)
def main():
# 爬取豆瓣电影TOP250的url
for i in range(0, 250, 25):
url = "https://movie.douban.com/top250?start=" + str(i) + ""
get_film_url(url)
save_url()
if __name__ == '__main__':
main()
使用Python的Pandas库进行数据清洗与处理
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 去重
data = data.drop_duplicates()
# 处理缺失值
data = data.fillna(0) # 将缺失值填充为0,也可以使用其他方法进行处理
# 数据格式转换
data['date'] = pd.to_datetime(data['date']) # 将日期列转换为日期格式
# 数据转换与整合
data['total_sales'] = data['quantity'] * data['price'] # 计算总销售额,根据实际需求进行计算
# 数据分组与聚合
monthly_sales = data.groupby(data['date'].dt.to_period('M')).sum()['total_sales'] # 按月份对销售额进行汇总
import pandas as pd
from sqlalchemy import create_engine
# 读取清洗后的数据
cleaned_data = pd.read_csv('cleaned_data.csv')
# 连接MySQL数据库
engine = create_engine('mysql+pymysql://username:password@localhost/database_name')
# 将数据存储到MySQL数据库中的表
cleaned_data.to_sql('table_name', engine, if_exists='replace', index=False)
# 关闭数据库连接
engine.dispose()
这个你不系统学一下Django、springboot之类的,代码给你也看不懂,这里我给几个参考示例页面:
在urls.py
文件中添加以下代码:
from django.urls import path
from . import views
urlpatterns = [
path('login/', views.login_view, name='login'),
]
接着,在views.py
文件中添加以下代码:
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home') # 登录成功后跳转到首页
else:
error_message = '用户名或密码错误'
return render(request, 'login.html', {'error_message': error_message})
else:
return render(request, 'login.html')
然后,在templates
文件夹中创建一个名为login.html
的模板文件,添加以下代码:
{% if error_message %}
<p>{{ error_message }}</p>
{% endif %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required><br><br>
<input type="submit" value="登录">
</form>
最后,确保在settings.py
文件中设置了正确的TEMPLATES
配置项,包括APP_DIRS
设置为True
,以使Django能够找到模板文件。
由于Django是自带后台页面的,你也可以去改改官方的,也能用
做几个跳转,去做个数据预测之类的,用饼图、折线图做个可视化……