【数据可视化-16】珍爱网上海注册者情况分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

【数据可视化-16】珍爱网上海注册者情况分析

  • 一、引言
  • 二、数据来源与预处理
    • [2.1 python库与数据导入](#2.1 python库与数据导入)
    • [2.2 数据清洗](#2.2 数据清洗)
  • 三、数据可视化
    • [3.1 性别比例分析](#3.1 性别比例分析)
    • [3.2 年龄分布分析](#3.2 年龄分布分析)
    • [3.3 婚姻状况分析](#3.3 婚姻状况分析)
    • [3.4 自我介绍词云图分析](#3.4 自我介绍词云图分析)
  • 四、总结

一、引言

随着春节的结束,相亲市场逐渐升温。为了更好地了解上海珍爱网的注册人员信息,进行了一次数据爬取,并使用 pyecharts 进行了可视化分析。以下是详细报告。

二、数据来源与预处理

爬取了珍爱网上海地区的注册人员信息,包括性别、城市、年龄、薪资或学历、婚姻状况、身高和自我介绍等字段。数据保存在一个 CSV 文件中。

2.1 python库与数据导入

首先,需要读取数据并进行预处理。以下是导入相应的库读取数据的代码:

python 复制代码
import pandas as pd 
import numpy as np 
import jieba 
import time 

from pyecharts.charts import Bar,Line,Map,Page,Pie  
from pyecharts import options as opts 
from pyecharts.globals import SymbolType 

# 读取CSV文件
df = pd.read_csv('shanghai_zhenai_data.csv')

2.2 数据清洗

对数据字段进行清洗,产生结构化的特征。

python 复制代码
df1["age_cut"]=pd.cut(df1["年龄"],bins=[18,30,42,54,66,78])
df1["age_cut2"]=pd.qcut(df1["年龄"],5,labels=['青年', '壮年', '中年', '老年','晚年'])

三、数据可视化

3.1 性别比例分析

首先,分析上海珍爱网注册人员的性别比例。以下是使用 pyecharts 创建性别柱状图的代码:

python 复制代码
temp = df1['性别'].value_counts().reset_index()
temp.columns = ['性别','计数']
data_pair = [(row['性别'], row['计数']) for _, row in temp.iterrows()]
top_city = sorted(data_pair, key=lambda x: x[1], reverse=True)

###  不同的柱子使用不同的颜色
data_pair = []
for k, v, c in zip([x[0] for x in top_city], [x[1] for x in top_city], ['red', 'blue']):
    data_pair.append(
        opts.BarItem(
            name=k,
            value=v,
            itemstyle_opts=opts.ItemStyleOpts(color=c)
        ))

bar = (Bar(init_opts=opts.InitOpts(theme='dark',width='1000px', height='800px'))
            .add_xaxis([x[0] for x in top_city])
            .add_yaxis("", data_pair)
            .set_series_opts(label_opts=opts.LabelOpts(is_show=True, 
                                                       position='insideRight',
                                                       font_style='italic',
                                                       color='pink'),
                             )

            .set_global_opts(
                title_opts=opts.TitleOpts(title="珍爱网上海相亲性别状况表现",
                                         subtitle="数据截止日期:2025年1月24日, 制图公众号--NLP随手记---",
                                         pos_top='2%',
                                         pos_left="center",
                                         title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)),
                xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),  #
                legend_opts=opts.LegendOpts(is_show=True),
            )
            # .reversal_axis()   #是否旋转坐标轴
        )
bar.render_notebook()
# bar.render("珍爱网上海相亲性别表现.html")

通过上图,可以知道上海该时间段,注册的相亲者中,男生比女生要多。

3.2 年龄分布分析

接下来,我们分析上海珍爱网注册人员的年龄分布。以下是使用 pyecharts 创建年龄分布饼状图的代码:

python 复制代码
df2 = df1.age_cut2.value_counts().reset_index()
data_pair = [[df2.loc[i]['index'],df2.loc[i]['age_cut2']] for i in range(len(df2))]

pie = (
    Pie(
        init_opts=opts.InitOpts(width='1000px', height='800px')
    )
    .add(series_name="",
            data_pair=data_pair,
            radius=["30%",'50%'],
            center=["38%", "50%"],
            label_opts=opts.LabelOpts(is_show=False, position="center"),
            )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='珍爱网上海相亲年龄状况表现',
            subtitle="数据截止日期:2025年1月24日, 制图公众号--NLP随手记---",
            pos_top='2%',
            pos_left="center",
            title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
        ),
        # visualmap_opts=opts.VisualMapOpts(
        #     is_show=False,
        #     max_=600,
        #     pos_top='70%',
        #     pos_left='20%',
        #     range_color=['blue', 'green', 'yellow', 'red']
        # ),
        legend_opts=opts.LegendOpts(is_show=True, pos_right="15%", pos_top="8%",orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
    .set_colors(['#EF9050', '#3B7BA9', '#6FB27C','#CC0033','#003399'])
)
pie.render_notebook()
pie.render("pie_set_color.html")

通过上图,可以知道上海该时间段,注册的相亲者中,相亲的人的年龄状况还是比较均衡的,中年人占比稍稍多一下。

3.3 婚姻状况分析

然后,分析上海珍爱网注册人员的婚姻状况。以下是使用 pyecharts 创建婚姻状况饼图的代码:

python 复制代码
pie = (
    Pie(
        init_opts=opts.InitOpts(width='1000px', height='800px')
    )
    .add(series_name="",
            data_pair=[
        list(z) for z in zip(
            ["离异", "未婚", "丧偶"],
            [71, 40, 9],
        )
    ],
            radius=["30%",'50%'],
            center=["38%", "50%"],
            label_opts=opts.LabelOpts(is_show=False, position="center"),
            )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='珍爱网上海婚姻状况表现',
            subtitle="数据截止日期:2025年1月24日, 制图公众号--NLP随手记---",
            pos_top='2%',
            pos_left="center",
            title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
        ),
        # visualmap_opts=opts.VisualMapOpts(
        #     is_show=False,
        #     max_=600,
        #     pos_top='70%',
        #     pos_left='20%',
        #     range_color=['blue', 'green', 'yellow', 'red']
        # ),
        legend_opts=opts.LegendOpts(is_show=True, pos_right="15%", pos_top="8%",orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
    .set_colors(['#EF9050', '#3B7BA9', '#6FB27C'])
)
pie.render_notebook()
pie.render("珍爱网上海婚姻状况表现.html")

通过上图,可以知道上海该时间段,注册的相亲者中,离异是最主要的因素。

3.4 自我介绍词云图分析

这里我们将使用stylecloud库来绘制词云图,看看自我介绍的词云图的分布情况,首先按照stylecloud库

python 复制代码
!pip install stylecloud

其次,编写自我介绍的清洗函数,具体函数如下;

python 复制代码
def get_cut_words(content_series):
    # 读入停用词表
    stop_words = [] 
    with open("stopwords.txt", 'r') as f:
        lines = f.readlines()
        for line in lines:
            stop_words.append(line.strip())
    # 添加关键词
    my_words = ['同频共振', '知冷暖', '毕业落户', '外冷内热', '造梦者','外冷内热','性格相投']    
    for i in my_words:
        jieba.add_word(i) 

#     自定义停用词
    my_stop_words = ['设施', '学校', '我校', '希望', '...','一个','增加'
                    '理论', '建议', '希望', '学生', '博客','豆瓣', '叶滑生',
                    '简书', '全国', '增加', '建设', '搞好','基于','CSDN','2019'
                    ]   
    stop_words.extend(my_stop_words)               

    # 分词
    content=';'.join([ str(c) for c in content_series.tolist()])
    word_num = jieba.lcut(content)

    # 条件筛选
    word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]

    return word_num_selected

最后绘制词云图;

python 复制代码
import stylecloud
from pathlib import Path
from IPython.display import Image # 用于在jupyter lab中显示本地图片

# 绘制词云图
stylecloud.gen_stylecloud(
    text=' '.join(get_cut_words(content_series=df1["自我介绍"]) ),
    collocations=False,
    font_path=(r'C:\\Windows\Fonts\SimHei.ttf'),#2-1字体的Path路径,
    icon_name='fas fa-heart',
    size = 578,
    output_name='上海珍爱网的自我介绍数据可视化.png'
)
Image(filename='上海珍爱网的自我介绍数据可视化.png')

注意:在实际运行上述代码时,你需要确保已经安装了 jieba 分词库。

四、总结

通过以上分析,我们可以得出以下结论:

  1. 上海珍爱网注册人员的性别情况,男生比女生稍多。
  2. 年龄分布主要集中比例较为均衡,中年人稍多一些。
  3. 婚姻状况以离异和未婚为主,说明相亲市场的主要需求群体。
  4. 自我介绍中出现了许多与性格、爱好、工作等相关的词汇,反映了注册人员的自我认知和期望。

希望这份报告能为关注上海珍爱网相亲市场的人员提供一定的参考和帮助。祝大家早日找到心仪的另一半!

相关推荐
nju_spy21 小时前
深度强化学习 TRPO 置信域策略优化实验(sb3_contrib / 手搓 + CartPole-v1 / Breakout-v5)
人工智能·强化学习·共轭梯度法·策略网络·trpo·sb3_contrib·breakout游戏
程序员欣宸21 小时前
LangChain4j实战之四:集成到spring-boot
java·人工智能·spring boot
cmdyu_21 小时前
告别 LLM 输出的不确定性:深度解析 TypeChat 如何重塑 AI 工程化开发
人工智能
想你依然心痛21 小时前
AI赋能编程语言挑战赛:从Python到Rust,我用AI大模型重塑开发效率
人工智能·python·rust
测试人社区-千羽21 小时前
AR/VR应用测试核心要点与实施策略
人工智能·安全·职场和发展·自动驾驶·测试用例·ar·vr
OOOaaa12312321 小时前
电子电路板元器件识别与分类_yolov8-fasternet-bifpn实现方案_1
yolo·数据挖掘
人工智能技术咨询.21 小时前
DNN案例一步步构建深层神经网络
人工智能·神经网络
机器之心21 小时前
让谷歌翻身的Gemini 3,上线Flash版
人工智能·openai
bryant_meng21 小时前
【Depth Estimation】learning notes
人工智能·深度学习·计算机视觉·深度估计·depth anything
大模型实验室Lab4AI21 小时前
LLaMA-Factory 课程答疑系列一:10个关键问题速查,官方认证解法让训练推理不踩雷
人工智能·llama