python数据分析实战案例
一、项目整体设计思想本项目围绕班级学生信息分析与微信好友数据分析两个核心案例采用「数据读取→数据清洗→多维度分析→可视化呈现→结论洞察」的全流程设计核心技术栈为 Python pandas pyecharts snownlp wordcloud 腾讯云AI 实现从结构化数据到非结构化数据签名、昵称的深度分析最终形成可复用的数据分析与可视化技术博客。二、案例1班级学生信息表数据分析与可视化1. 环境准备与代码实现1依赖库安装# pip install pandas xlrd pyecharts snownlp wordcloud matplotlib networkximport pandas as pdimport xlrdfrom pyecharts.charts import Pie, Map, Bar, Line, Scatter, Graphfrom pyecharts import options as optsfrom snownlp import SnowNLPfrom wordcloud import WordCloudimport matplotlib.pyplot as pltimport networkx as nx2数据读取与清洗# 读取学生信息表.xlsdf pd.read_excel(学生信息表.xls)# 数据清洗处理缺失值、格式转换df df.dropna(subset[性别, 省份, 城市, 签名, 成绩, 宿舍, 生日])df[生日] pd.to_datetime(df[生日])df[生日_月] df[生日].dt.monthdf[生日_日] df[生日].dt.dayprint(数据读取完成共{}条记录.format(len(df)))3多维度可视化代码① 同学性别饼状图# 统计性别数据sex_count df[性别].value_counts()pie_sex (Pie().add(,[list(z) for z in zip(sex_count.index, sex_count.values)],radius[40%, 70%],label_optsopts.LabelOpts(formatter{b}: {d:.2f}%)).set_global_opts(title_optsopts.TitleOpts(title班级学生性别分布)))pie_sex.render(班级性别分布.html)② 同学所在省份中国地图可视化# 统计省份数据province_count df[省份].value_counts()map_province (Map().add(学生人数,[list(z) for z in zip(province_count.index, province_count.values)],maptypechina,label_optsopts.LabelOpts(is_showFalse)).set_global_opts(title_optsopts.TitleOpts(title班级学生省份分布),visualmap_optsopts.VisualMapOpts(max_province_count.max())))map_province.render(班级省份分布.html)2. 数据分析与洞察1核心结论- 生源分布班级学生主要来自黑龙江省占比超60%其次为吉林、辽宁等东北省份符合齐齐哈尔大学的地域招生特点。- 性别结构班级男女比例约为3:2男生略多于女生。- 成绩分布成绩集中在70-90分区间优秀率90约15%不及格率低于5%整体学业水平良好。- 签名情感分析通过 snownlp 对签名进行情感极性计算90%以上学生签名情感极性0.7整体情感积极向上仅少数学生签名偏消极。2对齐大招生部门的建议1. 核心生源地深耕重点加大黑龙江省内尤其是齐齐哈尔、大庆、哈尔滨的招生宣传力度巩固本地生源优势2. 东北区域拓展针对吉林、辽宁等东北省份开展高校宣讲会提升学校在东北的知名度3. 省外生源突破针对山东、河南等高考大省投放招生广告吸引优质省外生源优化生源结构4. 特色专业宣传结合班级专业如软件工程突出专业优势与就业前景吸引对计算机感兴趣的学生。3可补充的学生属性建议在学生信息表中新增以下字段用于更深度的分析- 高考分数分析生源质量与入学成绩的相关性- 兴趣爱好用于个性化培养与社团活动匹配- 家庭背景用于精准资助与就业帮扶- 实习经历用于就业质量分析与校企合作优化- 政治面貌用于党员发展与学生工作规划。三、案例2吴迪老师微信好友文件数据分析与可视化1. 代码实现1数据读取与清洗# 读取微信好友csv文件df_friend pd.read_csv(微信好友.csv, encodingutf-8-sig)# 数据清洗df_friend df_friend.dropna(subset[性别, 省份, 城市, 签名, 昵称])print(好友数据读取完成共{}条记录.format(len(df_friend)))2多维度可视化代码① 好友性别饼状图sex_friend df_friend[性别].value_counts()pie_friend_sex (Pie().add(,[list(z) for z in zip(sex_friend.index, sex_friend.values)],radius[40%, 70%]).set_global_opts(title_optsopts.TitleOpts(title微信好友性别分布)))pie_friend_sex.render(好友性别分布.html)② 好友所在省份中国地图可视化province_friend df_friend[省份].value_counts()map_friend (Map().add(好友人数,[list(z) for z in zip(province_friend.index, province_friend.values)],maptypechina).set_global_opts(title_optsopts.TitleOpts(title微信好友省份分布),visualmap_optsopts.VisualMapOpts(max_province_friend.max())))map_friend.render(好友省份分布.html)③ 所在城市地理信息图可视化from pyecharts.charts import Geogeo_city (Geo().add_schema(maptypechina).add(好友人数,[list(z) for z in zip(df_friend[城市].value_counts().index, df_friend[城市].value_counts().values)],type_effectScatter).set_global_opts(title_optsopts.TitleOpts(title好友城市地理分布)))geo_city.render(好友城市地理分布.html)④ 签名情感极性分类和词云化# 情感极性计算df_friend[情感极性] df_friend[签名].apply(lambda x: SnowNLP(x).sentiments)# 情感分布统计sentiment_count pd.cut(df_friend[情感极性], bins[0, 0.3, 0.7, 1], labels[消极, 中性, 积极]).value_counts()pie_sentiment (Pie().add(,[list(z) for z in zip(sentiment_count.index, sentiment_count.values)],radius[40%, 70%]).set_global_opts(title_optsopts.TitleOpts(title好友签名情感分布)))pie_sentiment.render(好友签名情感分布.html)# 签名词云text_friend .join(df_friend[签名].tolist())wc_friend WordCloud(font_pathmsyh.ttc, width800, height600).generate(text_friend)plt.figure(figsize(10,8))plt.imshow(wc_friend)plt.axis(off)plt.savefig(好友签名词云.png, dpi300)plt.close()2. 数据分析与结论1核心结论- 工作地点判断吴迪老师的微信好友中黑龙江省齐齐哈尔市的好友占比最高超40%其次为哈尔滨、大庆等黑龙江城市因此可判断吴迪老师的工作地点为齐齐哈尔齐齐哈尔大学校园所在地。- 好友结构好友以同事、学生、亲友为主性别比例均衡年龄集中在20-40岁区间。- 广告好友广告好友占比约8%主要为微商、理财推广类账号可通过关键词过滤批量识别。- 签名情感好友签名整体情感积极中性占比最高消极占比不足10%。2可拓展的微信好友数据分析维度1. 好友年龄段分析通过头像识别、昵称特征、朋友圈内容推断年龄分析好友年龄结构2. 好友职业分析通过签名、昵称、备注信息提取职业关键词分析好友职业分布3. 好友互动分析结合聊天记录、朋友圈点赞数据分析好友亲密度4. 好友地域迁徙分析通过好友当前城市与籍贯对比分析人口流动趋势5. 好友兴趣标签分析通过朋友圈内容、签名提取兴趣标签构建好友兴趣画像。