调查问卷——matplotlib、scipy小练习
程序员文章站
2022-05-18 20:57:16
...
一组调查问卷,从中探索顾客、店主对于商品、服务、活动的态度。
本次练习主要学习内容,包括数据重新构造、可视化堆积图、卡方检验
一、数据重构
import pandas as pd
#读取数据,并显示前5行。识别数据类型及属性。
survey = pd.read_csv(r'C:\Users\Administrator\Desktop\survey.csv', encoding = 'utf-8')
survey.head()
立场 回答6 回答70 顾客 商品齐全 无回答
1 顾客 商品齐全 无回答
2 顾客 商品齐全 传统吉祥物
3 顾客 商品齐全 萌系美少女
4 顾客 商品齐全 萌系美少女
#提取其中顾客和店主的回答6,并重新构造一个数据表
#创建布尔索引
customer = survey[survey.立场 == '顾客']
boss = survey[survey.立场 == '店主']
#穿件数据对象
#利用字典创建dataframe,其中value_counts()求出每一项的总和
su2 = pd.DataFrame({'顾客':boss.回答6.value_counts()})
su2 = pd.DataFrame({'店主':boss.回答6.value_counts()})
#创建数据表
survey_N = pd.concat([su1, su2], axis = 1)
顾客 店主促销 39 11
商品齐全 18 42
服务态度好 35 9
活动 11 38
二、数据可视化
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
#其中.T为转置,kind = 'bar'为堆积图,stacked = True 为堆叠
survey_N.T.plot(kind = 'bar', stacked = True, color = ['b', 'r', 'g', 'y'], grid = False)
plt.show()
可以看出顾客和店主,在四项活动中,看重点不同。
去掉stacked = True,显示为:
三、卡方检验
from scipy.stats import chi2_contingency
chi2_contingency(survey_N)
(55.488971138570164, 5.3999746517395078e-12, 3, array([[ 25.36945813, 24.63054187], [ 30.44334975, 29.55665025], [ 22.32512315, 21.67487685], [ 24.86206897, 24.13793103]]))
零假设店主与顾客的回答是独立的,即无显著不同
备择假设店主与顾客的回答意见受各自立场影响,即意见不同
概率不足显著性水平(5%)否定零假设,即顾客与店主的意见是否存在显著偏差
概率等于或超过显著性水平(5%)保留零假设,即顾客与店主的意见不受各自立场影响
其中计算结果P<5%。
统计学知识,需要补习。
上一篇: 第一部分day5 文件操作
下一篇: nginx代理(正向代理和反向代理)