欢迎来到圆周率的后六位csdn
在呼和浩特市,一个融合了传统与现代的城市,单身男女的婚恋观念和择偶标准正逐渐成为社会关注的焦点。
随着社会的发展和生活节奏的加快,越来越多的年轻人选择单身生活,他们对于伴侣的选择有着自己独特的见解和期待。为了更好地理解呼和浩特市单身男女的婚恋现状,我们进行了一项深入的分析,旨在揭示他们在寻找未来伴侣时所重视的品质、性格、兴趣和生活方式。
通过对单身男女的择偶关键词进行词云分析,我们能够捕捉到他们对于理想伴侣的期望和偏好。这些数据不仅为我们提供了一个窗口,以观察呼和浩特市单身人群的婚恋观念,还有助于我们理解他们在爱情和婚姻中的追求。
本文将通过对这些数据的详细分析,探讨呼和浩特市单身男女的择偶趋势,以及这些趋势背后可能的社会和文化因素。
今天想给大家分享一个项目,爬取相亲网站数据并且做一个数据分析。
第一部分为数据获取;
第二部分为获取到数据处理合并;
第三步部分为数据分析
一:数据获取
import pandas as pd
import time
import requests
from lxml import etree
import xlrd
all_data = []
for page in range(1, 7):
time.sleep(1)
print(f'+++++++++++++++++++{page}+++++++++++++++++++++')
url = f'https://www.zhenai.com/zhenghun/huhehaote/{page}'
head = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win32; x32) AppleWebKit/537.38 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.38'}
html = requests.get(url, headers=head)
obj = etree.HTML(html.text)
name = obj.xpath('//table/tbody/tr[1]/th/a/text()')
sex = obj.xpath('//table/tbody/tr[2]/td[1]/text()')
city = obj.xpath('//table/tbody/tr[2]/td[2]/text()')
age = obj.xpath('//table/tbody/tr[3]/td[1]/text()')
xzxl = obj.xpath('//table/tbody/tr[3]/td[2]/text()')
hunyin = obj.xpath('//table/tbody/tr[4]/td[1]/text()')
shengao = obj.xpath('//table/tbody/tr[4]/td[2]/text()')
intro = obj.xpath('//div[@class="g-list"]/div[@class="list-item"]/div[2]/div[1]/text()')
data = {'姓名': name,
'性别': sex,
'城市':city,
'年龄':age,
'薪资或者学历':xzxl,
'婚姻状况':hunyin,
'身高':shengao,
'自我介绍':intro}
all_data.append(data)
df=pd.DataFrame(data) # 标准的df数据
df.to_excel(r'/自己的路径/呼和浩特相亲信息{}.xlsx'.format(page), index=False)
结果如下图:
二:数据整理合并
爬取到数据是一页一个excel文件数据,现在将其处理为一个csv文件,以便后续我们对其进行分析。
#### 将多个excel文件合并
import os
import pandas as pd
# 指定包含CSV文件的文件夹路径
folder_path = '路径' # 请替换为你的CSV文件所在的文件夹路径
output_file = '路径/呼和浩特相亲数据合并.csv' # 合并后的CSV文件名
dataframes = []
for filename in os.listdir(folder_path):
if filename.endswith('.xlsx'): # 确保文件是CSV格式
file_path = os.path.join(folder_path, filename)
df = pd.read_excel(file_path)
dataframes.append(df)
# 使用concat方法纵向合并所有的DataFrame
merged_data = pd.concat(dataframes, ignore_index=True)
merged_data.to_csv(output_file, index=False, encoding='utf-8-sig')
print(f'合并完成,已保存为 {output_file}')
三:数据分析
多得到的数据做数据分析
###############数据分析#########################
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data = pd.read_csv(output_file,encoding='gbk')
data.info()
“”" 样例数据只有120个,主要字段有姓名 性别 城市 年龄 薪资与学历 婚姻状况 身高 自我介绍 “”"
3.1性别分析
data.groupby('性别')['姓名'].count().plot.pie(autopct='%1.1f%%', startangle=90, figsize=(8, 6))
plt.title('Analysis of Single Men and Women in Hohhot City')
plt.show()
性别分析如下:
基于样本数据由饼图可以看出在呼和浩特单身男女饼图分析中,男士占比49.2%,女士占比50.8,女士占比微高与男士。
1.性别比例接近平衡:总体来看,单身男女的比例非常接近,几乎达到了1:1的比例,这表明在呼和浩特单身人群中,性别分布相对均衡。
2.女士略多:尽管女士的占比只有50.8%,略高于男士的49.2%,但这微小的差距可能并不具有统计学上的显著性,尤其是在样本量较小的情况下。这种微小的差异可能是由于随机抽样误差或者样本选择偏差造成的。
3.社会文化因素:如果这种差异在更大的样本中也存在,那么可能需要考虑社会文化因素的影响。例如,可能存在某些社会或文化因素导致女性更倾向于保持单身,或者男性更可能因为工作、经济等原因而延迟结婚。
4.经济因素:经济独立可能是影响单身比例的一个因素。如果呼和浩特的女性在经济上更加独立,她们可能会选择更晚结婚或者保持单身。
5.教育和职业发展:教育水平和职业发展也可能是影响因素之一。如果呼和浩特的女性在教育和职业上有更多的机会,她们可能会更倾向于专注于个人发展而非婚姻。
6.生活方式和价值观变化:随着社会的发展,人们的生活方式和价值观也在不断变化。越来越多的人可能更重视个人自由和自我实现,而不是传统的婚姻和家庭生活。
3.2婚姻状况分析
####### 二 婚姻状况分享 #####################
data.groupby('婚姻状况')['姓名'].count().plot.pie(autopct='%1.1f%%', startangle=90, figsize=(8, 6))
plt.title('Marital status in Hohhot City')
plt.show()
婚姻状况分析如下:
基于样本数据饼图显示:婚姻状况离异占比为:60.8%,未婚的占比为32.5%,丧偶的占比为:6.7% 。饼图显示的婚姻状况分布情况揭示了一些关于呼和浩特地区单身人群的婚姻历史信息。以下是对这些数据的简单分析:
- 高离异比例:离异人群占比高达60.8%,这是一个相当高的比例,表明在呼和浩特的单身人群中,有过婚姻经历并且最终离异的人占据了绝大多数。
- 未婚人群比例较低:未婚人群的占比为32.5%,相对较低,这可能意味着许多成年人在某个阶段都曾有过婚姻,但后来因为各种原因离异。
- 丧偶比例最小:丧偶人群的占比为6.7%,是三者中最小的比例。这可能是因为丧偶是一个较为不幸且不常见的事件,通常由于疾病、意外等原因导致。
- 社会变迁的反映:高离异率可能反映了社会价值观和婚姻观念的变化。现代社会中,人们对婚姻的期望和容忍度可能有所变化,导致离异变得更加普遍。
- 经济和个人选择:离异率的提高可能与经济独立、个人选择和对婚姻质量要求的提高有关。随着经济的发展和个人主义的增强,人们可能更倾向于结束不幸福的婚姻,追求个人幸福。
- 法律和社会支持:法律对离婚的宽容度提高以及社会对离异人士的接受度增加,可能也是导致离异率上升的因素之一。
- 对丧偶人群的关注:丧偶人群虽然比例最小,但他们可能需要更多的社会支持和心理援助,以帮助他们从失去伴侣的悲痛中恢复过来。
- 数据解读需谨慎:需要注意的是,这些数据仅代表样本中的分布情况,可能受到样本选择、地区特性等多种因素的影响,因此在做出更广泛的社会结论之前,需要更多的数据和深入的分析。
总体而言,这些数据提供了对呼和浩特地区单身人群婚姻状况的一个快照,揭示了离异、未婚和丧偶人群的比例分布。这些信息对于理解当地的社会结构、婚姻市场以及可能需要的社会服务都有重要的参考价值。
3.3年龄分布分析
# 定义条件
conditions = [
data['年龄'] <= 25,(data['年龄'] > 25) & (data['年龄'] <= 30),
(data['年龄'] > 30 ) & (data['年龄'] <= 40), (data['年龄'] > 40 ) & (data['年龄'] <= 50),(data['年龄'] > 50 )
]
values = ['25以内', '25~30', '30~40','40~50','50+'] # 定义对应的标签
# 使用np.select来增加新的列“年龄分布”
data['年龄分布'] = np.select(conditions, values)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 推荐使用SimHei字体显示中文
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
plt.bar(data.groupby('年龄分布')['姓名'].count().index, data.groupby('年龄分布')['姓名'].count().values,label='单身年龄分布')
plt.title('呼和浩特单身人数年龄柱状图')
plt.xlabel('年龄分布')
plt.ylabel('年龄')
plt.show()
基于现在的样本数据可以做出以下分析:
25~30岁:此年龄段有7人单身,这个年龄段通常处于职业生涯的初期或中期,个人可能正忙于工作和个人发展,同时也在寻找合适的伴侣。
25以内:有2人单身,这个年龄段可能还在学校或刚刚步入职场,对于恋爱和婚姻的观念可能尚未完全形成,或者还在探索阶段。
30~40岁:此年龄段单身人数最多,达到54人。这个年龄段的人通常已经有了一定的经济基础和社会地位,但由于各种原因(如工作繁忙、社交圈子有限、个人选择等)可能仍然单身。
40~50岁:有35人单身,这个年龄段的人可能经历了婚姻失败、离婚或一直保持单身状态,他们可能更加注重个人生活质量和情感需求。
50+:有22人单身,这个年龄段的人可能经历了更多的生活变故,如子女离家、退休等,他们可能希望找到一个伴侣共度晚年。
建议:
增加社交机会:对于所有年龄段的单身人士来说,增加社交机会是找到合适伴侣的关键。可以通过参加兴趣小组、社交活动、志愿者活动等来扩大自己的社交圈子。
提升自我认知:了解自己的需求和期望,明确自己在恋爱和婚姻中的价值观和目标。这有助于更好地选择适合自己的伴侣。
寻求专业帮助:对于某些单身人士来说,可能需要寻求专业心理咨询或婚恋指导来帮助他们更好地处理情感问题和找到合适的伴侣。
改变传统观念:社会应该鼓励多元化的生活方式和恋爱观念,尊重每个人的选择。同时,家庭和社会也应该给予单身人士更多的理解和支持。
利用科技手段:随着科技的发展,越来越多的人开始使用在线婚恋平台来寻找伴侣。这些平台提供了更多的选择和便利,可以作为一种有效的交友方式。
3.4 自我介绍分析
from wordcloud import WordCloud
def list_to_text(lst,sep=' '):
return sep.join(str(item) for item in lst)
3.4.1单身男性自我介绍词云分析
male = data[data['性别']== '男士']['自我介绍'].tolist()
# ############单身男性自我介绍词云分析##############
wordcloud = WordCloud(font_path=font,width=800, height=400, background_color='white').generate(list_to_text(male,' ')) # list_to_text(ciyun,' )
# 显示生成的词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off') # 关闭坐标轴
plt.show()
根据呼和浩特单身男士数据词云信息,可以分析并梳理出以下几点:
-
男性关注点:
- 男性在寻找未来女朋友时,最关注的是对方是否“不冷战”和“情绪稳定”。这表明男性希望与伴侣之间能够有良好的沟通,避免冲突和冷战,同时也希望对方能够有稳定的情绪,这样更有利于建立和谐的关系。
-
性格特质:
- 其次是“性格开朗”和“相互包容”。性格开朗意味着女性应该乐观、积极,能够给生活带来正能量。相互包容则是指双方在关系中能够理解和接受对方的缺点和不足,这对于维持长久的关系是非常重要的。
-
生活态度:
- “踏实”这一特质表明男性希望女性在生活中能够脚踏实地,不浮躁,能够共同面对生活中的挑战和困难。
-
共同兴趣:
- “旅游”这一兴趣点说明男性希望与未来的女朋友有共同的爱好,比如旅游,这样可以增加双方的共同话题和经历,增进感情。
3.4.2单身女性自我介绍词云分析
famale = data[data['性别']== '女士']['自我介绍'].tolist()
wordcloud = WordCloud(font_path=font,width=800, height=400, background_color='white').generate(list_to_text(famale,' ')) # list_to_text(ciyun,' )
# 显示生成的词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off') # 关闭坐标轴
plt.show()
呼和浩特单身女性数据词云信息,可以分析并梳理出以下几点:
-
核心品质:
- 善良:女性在寻找未来男朋友时,最看重的是对方的善良品质,这表明女性希望伴侣具有同情心和良好的道德标准。
- 有责任心:责任心是另一个重要的品质,意味着女性希望男性能够承担起关系中的责任,无论是在家庭还是工作中。
-
兴趣爱好:
- 看书:女性希望男性有阅读的习惯,这可能与追求知识和个人成长有关,也可能是为了寻找共同的兴趣和话题。
- 热爱生活:这一特质表明女性希望男性对生活有热情,能够享受生活,共同创造美好的回忆。
-
性格特质:
- 成熟稳重:女性希望男性在性格上成熟稳重,这可能意味着在处理问题和决策时更加理智和冷静。
- 有担当:这与有责任心相似,强调男性在面对困难和挑战时能够勇敢站出来,承担起应有的责任。
-
生活技能:
- 会做饭:女性希望男性具备一定的生活技能,如烹饪,这可能是为了共同分担家务,也可能是为了享受一起做饭的乐趣。
-
情感态度:
- 真诚:女性希望男性在情感上真诚,不虚伪,这有助于建立信任和深入的情感联系。
- 包容:包容性意味着男性能够接受和理解女性的缺点和不足,这对于维持和谐的关系至关重要。
3.4.3单身自我介绍词云分析
danshen= data['自我介绍'].tolist()
# ############单身男性自我介绍词云分析##############
wordcloud = WordCloud(font_path=font,width=800, height=400, background_color='white').generate(list_to_text(danshen,' '))
# # 显示生成的词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off') # 关闭坐标轴
plt.show()
情况和单身女性 单身男性词云图结果差不多。 有帮到各位老铁的可以关注 点赞和收藏!!!