一、设计要求
描述性统计分析
对数据进行基本的描述性统计分析,包括以下内容:
- 年龄分布:计算各年龄段的人数和百分比,并统计年龄的均值、中位数和标准差。
- 性别分布:计算不同性别的人数和百分比。
- 职业分布:计算不同职业的人数和百分比。.
推论性统计分析
进行推论性统计分析,提供以下功能:
- t检验:比较不同性别在问卷总分上的差异,输出t统计量和p值。
- 卡方检验:比较不同年龄段在职业分布上的差异,输出卡方值和p值。
数据可视化
使用Matplotlib进行数据可视化,提供以下图表:
- 年龄分布图:以柱状图形式展示各年龄段的频次。
- 性别分布图:以柱状图形式展示不同性别的频次。
- 职业分布图:以柱状图形式展示不同职业的频次。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
二、设计思路
代码设计思路分析
1. 文件导入与字体设置
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy import stats from matplotlib import font_manager # 设置中文字体 font_path = 'SimHei.ttf' # 根据实际路径设置字体路径 font = font_manager.FontProperties(fname=font_path) plt.rcParams['font.family'] = font.get_name()
导入所需的库,设置中文字体路径以确保在可视化过程中中文标签能够正确显示。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
2. 读取数据
file_path = '264356010_按文本_关于卡尔美运动品牌知名度的问卷调查_47_47.xlsx' data = pd.read_excel(file_path, engine='openpyxl')
从指定的Excel文件中读取问卷调查数据,使用openpyxl
引擎以兼容不同格式的Excel文件。
3. 数据预处理
age_mapping = { 'A. 18岁及以下': 18, 'B. 19-25岁': 22, 'C. 26-35岁': 30, 'D. 35岁及以上': 40 } data['年龄数值'] = data['1、请问您的年龄是?'].map(age_mapping)
将年龄选项转换为数值形式,便于后续的统计分析。通过map
方法将年龄区间映射为对应的数值。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
4. 描述性统计分析
# 年龄分布 # 略..... # 略..... # 略..... # 性别分布 # 略..... # 职业分布 # 略..... # 打印描述性统计结果 print('年龄分布:') print(pd.DataFrame({'Counts': age_counts, 'Percentage': age_percentage})) print(f'年龄均值: {age_mean:.2f}') print(f'年龄中位数: {age_median:.2f}') print(f'年龄标准差: {age_std:.2f}') print('\n性别分布:') print(pd.DataFrame({'Counts': gender_counts, 'Percentage': gender_percentage})) print('\n职业分布:') print(pd.DataFrame({'Counts': occupation_counts, 'Percentage': occupation_percentage}))
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
进行描述性统计分析,计算各个类别(年龄、性别、职业)的频次和百分比,并计算年龄的均值、中位数和标准差。输出描述性统计结果,帮助了解数据的基本情况和分布特征。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
5. 推论性统计分析
# t检验 - 比较不同性别的总分 male_scores = data.loc[data['2、您的性别是?'] == 'A. 男', '总分'] # 略..... # 略..... print(f'\nt检验结果: t_stat = {t_stat:.4f}, p_val = {p_val:.4f}') # 卡方检验 - 比较不同年龄段的职业分布 age_groups = pd.cut(data['年龄数值'], bins=[0, 18, 25, 35, 50, 100], labels=['0-18', '19-25', '26-35', '36-50', '50+']) # 略..... # 略..... # 略..... print(f'\n卡方检验结果: chi2 = {chi2:.4f}, p_val = {p:.4f}')
进行推论性统计分析,包括t检验和卡方检验。t检验用于比较不同性别在总分上的差异,卡方检验用于比较不同年龄段在职业分布上的差异,输出统计检验结果,包括t统计量、p值和卡方值。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
————————————————
三、可视化分析
1. 年龄分布图
年龄分布图以柱状图的形式展示了调查问卷中各个年龄段的受访者人数。这一图表可以直观地反映出调查对象的年龄构成,从中我们可以看到不同年龄段受访者的比例。例如,如果18岁及以下和19-25岁年龄段的柱子明显高于其他年龄段,说明该调查问卷的主要受众是年轻人。这对于市场研究人员来说非常重要,因为了解目标人群的年龄分布可以帮助他们制定更有针对性的营销策略和产品定位。此外,通过观察柱状图中的峰值和低谷,我们还可以识别出调查对象的年龄集中区间和相对较少的年龄段,为后续的分析提供数据支持。
# 年龄分布 plt.figure(figsize=(10, 6)) age_counts.plot(kind='bar') plt.title('年龄分布', fontproperties=font) plt.xlabel('年龄', fontproperties=font) plt.ylabel('人数', fontproperties=font) plt.show()
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
2. 性别分布图
性别分布图也是以柱状图的形式展示,反映了调查问卷中男性和女性受访者的比例。通过这个图表,可以清晰地看到调查样本中不同性别的分布情况。例如,如果男性和女性受访者的柱子高度相近,说明该调查在性别上具有较好的平衡性;而如果某一性别的柱子显著高于另一性别,说明调查在性别分布上存在一定的偏向。性别分布对于市场研究和产品开发同样重要,因为不同性别的消费者可能有不同的需求和偏好。了解性别分布可以帮助企业在推广产品时进行性别细分,从而提高营销效果和用户满意度。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈
3. 职业分布图
职业分布图以柱状图的形式展示了受访者的职业构成。这一图表可以帮助我们了解不同职业背景的受访者在调查中的比例。例如,如果图表中显示学生、白领和自由职业者的柱子较高,说明这些职业群体是调查的主要对象。职业分布信息对于了解目标人群的职业背景和经济能力具有重要意义,可以帮助企业更好地理解消费者的购买力和消费习惯。例如,学生群体可能更关注性价比和品牌形象,而白领群体则可能对产品质量和售后服务有更高的要求。通过分析职业分布图,企业可以制定更有针对性的产品开发和市场推广策略,满足不同职业群体的需求。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 调查问卷 ” 获取。👈👈👈