利用python进行数据分析—数据清洗记录3,map,apply,
社会心态调查报告
导语:
时代决定心态,心态映照时代。社会心态产生于社会个体心理,又以整体的形态存在,进而影响着每个社会成员的社会价值取向和行为方式,影响着国家经济政治和社会发展大局。良好的社会心态,是促进个人、社会、国家发展进步的重要心理基础,是国家文化软实力的重要组成部分,社会心态是改革发展的“风向标”、文化建设的“晴雨表”、社会稳定的“安全阀”。
2011 年,“十二五”规划纲要首次写入了“社会心态”,提出了培育“奋发进取、理性平和、开放包容”的社会心态,充分显示了社会心态对新时期社会发展的重要意义。
社会心态是与特定的社会运行状况或重大的社会变迁过程相联系的、在一定时期内广泛存在于各类社会群体内的情绪、情感、社会认知以及价值取向的总和。它属于社会心理的动态构成部分。
由于社会心态越来越重要,XX大学统计学院联合全国29所高校,对大学生(含本硕博)对学校环境、专业等社会心态话题的认知展开了调查。
[以上背景材料来自XX大学统计学院和互联网,报告中分析结果只对此次样本负责]
调查方式:网络调查
问卷来源:XX大学统计学院正在进行一项关于“社会心态与政策评价关联”的课题研究,其根据对当代大学生以及自身社会心态的认知,开展了包含大学生对学校环境、专业等密切相关话题的问卷调查,就在全国范围高校内进行问卷调查。
抽样依据:地理位置代表性,学校的层次分布,兼顾科学性和便利性原则。
抽样原则:兼顾精度与成本及时间预算。
样本量及其分配:整个调查需要总样本量10000份。根据各高校在校生总数进行比例分配。29所高校,其中985/211高校13所,非985/211高校16所,覆盖全国25个城市。
按照此要求,要求XX大学至少420个有效样本。
二、问卷设计
问卷分为社会认知、社会情绪、社会价值观、社会倾向四大部分
1、社会情绪。是社会成员在既定的社会环境下产生的情绪体验,属于感性因素,分为三个因子:①社会愉悦,是个体在生活、工作和社交状况良好,各方面都比较满意时所表现的积极情绪;②社会忧愤,是个体受社会环境刺激表现出的忧虑的负面情绪;③社会盲从,是个体受整体社会环境潜移默化影响,产生的盲目攀比、拜金和痛苦等负面情绪。
2、社会认知。是社会成员对于社会现实的认识或理解,分为三个因子:①自我满足认知,主要表现个人对于自我的支撑,如归属感、成就感、幸福感等;②社会环境认知,主要表现个人对于社会环境整体状态的正向感知③社会问题认知,主要表现个人对于社会被动地位的负能量感知,如弱势感、威胁感等。
3、社会价值观。是社会成员受社会环境的长期影响所形成的,属于稳定成分,对好坏善恶等产生评判标尺,分为四个因子:①为人处事,代表个人对事的态度、观点;②人情温暖,代表个人对其他社会成员的态度、观点;③自身节制,代表个人对于物质的观点;④积极进取,代表个人对于追求目标的态度。
4、社会行为倾向。反映行为前的准备状态倾向于理性还是激进,属于最贴近行为的部分,分为四个因子:①活动参与,表示个人对于国家事务、社区活动等的参与程度;②奉献行为,表示个人对于其他社会成员或对于所处社会环境、组织的奉献程度;③歧视与排斥表示个人对于其他成员的排斥行为倾向;④冲突应对与矛盾化解表示个人对于社会事务的处理方式。
三、问卷情况
经查阅相关资料可知,XX大学环境化学与工程学院总人数为1597人,其中本科1352人、硕士211人、博士34人。
整个XX大学调查单元总共回收480份问卷,问卷分析之前还需进行问卷的预处理,主要是剔除无效问卷。
四、问卷的预处理
1、 问卷数据的规整
问卷的规整,即将问卷数据转换成适合进一步清洗、分析的格式数据。根据问卷题目逻辑,将题目和数据一一对应,规整、合并为适合清洗、分析的数据文件。
2、 问卷数据的清洗
按照抽样调查的要求,即考虑费用的前提下提高抽样的精度。通俗的说,即希望样本尽可能的代表总体的信息,从而能够通过分析样本的信息,推测整个调查对象在某个问题上的规律、模式。
也正因为如此,假如我们需要做大批量调查,比例不高的无效样本也可能影响整个分析结果,千里之堤、毁于蚁穴!因此,分析之前需要进行数据的清洗。
针对问卷数据,以下几种情况的问卷数据需要清洗:
空缺率
问卷漏答数过多,一般以漏答总题数的2/3为准,例如有10个问题却漏答6题以上者即为无效问卷;或者规定漏答3项以上视为无效问卷;
完整度
中途放弃作答;
真实
选择答案不真实;
填写时间
规则:填写时间太长,被调查者可能中断过,填写时间太短,被调查者可能填写随意;均影响统计分析误差;
前后矛盾
前后题目的回答矛盾
由于问卷填写的设置,此次不存在问卷不完整的情况;同时,由于辨别答案真实性、是否前后矛盾存在一定难度,保障精度的情况下我们只针对受调查者随意填写问卷的情况进行了处理。具体地,我们对所有各问题答案雷同、问卷完成填写时间少于2分钟(文中我统称此情况为异常样本)这两种情况,选择答案有明显的重复规律,做了问卷剔除的处理。
针对此项问卷清洗的要求,我总结了两种监测、处理手段:1)色阶图法;2)代码法。
3.1异常样本的识别、处理:色阶图法
色阶图法适用于小批量数据的异常值发现、处理,如下图所示:色阶图显示,第10、36……个问卷各答案存在雷同,因此需要做剔除处理。
3.2异常样本的识别、处理:代码法
因为色阶图法需要人为操作、识别,在处理大批量问卷的时候,excel处理可能出现打开问题,给处理带来了不便,同时在甄别上也只能发现答案雷同的无效问卷,并不能准确检测出其他模式的无效问卷,具体检测上也存在人为的主观性差异,因此色阶图的方法只适用于问卷数量较小的情况。
针对我们的情况,特别编写了机器自动识别的方法,实现自动识别、剔除的效果,大大节省人力,而且能够保障准确性。
具体地,数据清洗的逻辑是,对回答问卷作答时间少于200秒,或者全部题目集中在两个选项中并且选择一个选项超过50次的样本进行剔除处理。480份问卷剩余409份有效问卷,清洗好的数据保存在excel文件中,供进一步的分析。
五、问卷的分析
第 I 条 认知部分
表1:社会认知调查色阶、分布图
(注:调查样本为##大学学生,文中图表、文字分析结果只对次项调查负责)
表2:社会情绪色阶图、分布图
在幸福感、归属感的整体认知上同学们认同强烈。学生们认为遇到困难时能够从身边朋友、亲人、学校、社会中获得帮助;社会归属感、自身的幸福感比较强烈,也相信有足够的能力处理好遇到的困难。但是在当今社会、校园环境是否安全、社会分配、机会上是否公平这些问题上,同学们看法相对发散,整体上成正态分布。
第 II 条 情绪部分
表3:社会情绪色阶、分布图
学生情绪部分,学生普遍存在学业压力,大部分认为会因为学习不顺心而感到痛苦;尤其说明的是,对“钱越多生活越幸福”这种说法表示赞同的同学几乎占了至少9成,同时有接近一半的同学表示完全认同。
[背景知识、数据量有限,暂时只做这两部的简单分析]
附录:清洗的代码
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
data=pd.read_excel(r"C:\Users\Oscar\Desktop\data2.xlsx",encoding="utf8")#原始问卷数据 data1=data.ix[:,0:2] #含有time的DataFrame
data2=data.ix[:,3:].T #含有数据的部分 data1["time"]=(data1.ix[:,1]-data1.ix[:,0])
index_time= data1["time"].apply(lambda x: x/np.timedelta64(1, 's'))
#Pandas计算出的时间间隔数据的类型是np.timedelta64, 不是Python标准库中的timedelta类型,
#因此没有total_seconds()函数,需要除以np.timedelta64的1秒来计算间隔了多少秒。
result = data2.apply(pd.value_counts).fillna(0)
result1 = result.apply(pd.value_counts).fillna(0)
chaxun=((result.max()<50)&(result1.ix[0.0,:]<4))|(index_time>200) cleaned_data=data2.T[chaxun]
#剔除某个选项的个数大于50,或者选项集中在两个选项中的样本,或者答题时间小于200秒的样本
cleaned_data.to_excel(r"C:\Users\Oscar\Desktop\cleaned_data.xlsx") #导出清洗后的问卷数据
利用python进行数据分析—数据清洗记录3,map,apply,的更多相关文章
- "利用python进行数据分析"学习记录01
"利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...
- Python: 利用Python进行数据分析 学习记录
-----15:18 2016/10/14----- 1. import numpy as np;import pandas as pd values = pd.Series(np.random.no ...
- 数据清洗与准备知识图谱-《利用Python进行数据分析》
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片.
- 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子
http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...
- 利用Python进行数据分析
最近在阅读<利用Python进行数据分析>,本篇博文作为读书笔记 ,记录一下阅读书签和实践心得. 准备工作 python环境配置好了,可以参见我之前的博文<基于Python的数据分析 ...
- 《利用Python进行数据分析·第2版》
<利用Python进行数据分析·第2版> 第 1 章 准备工作第 2 章 Python 语法基础,IPython 和 Jupyter第 3 章 Python 的数据结构.函数和文件第 4 ...
- $《利用Python进行数据分析》学习笔记系列——IPython
本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...
- 利用python进行数据分析之pandas入门
转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...
- 利用python进行数据分析--(阅读笔记一)
以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分 ...
随机推荐
- 使用新浪IP库获取IP详细地址
使用新浪IP库获取IP详细地址 <?php class Tool{ /** * 获取IP的归属地( 新浪IP库 ) * * @param $ip String IP地址:112.65.102.1 ...
- ZOJ 3961 Let's Chat 【水】
题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3961 题意 给出两个人的发消息的记录,然后 如果有两人在连续M天 ...
- iOS 9 的新功能 universal links
什么是 universal links: (通用链接) 一种能够方便的通过传统 HTTP 链接来启动 APP, 使用相同的网址打开web page和 APP的方式. 第一点,链接打开网址 顾名思义 第 ...
- javascript;Jquery;获取JSON对象,无刷新评论实例。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> < ...
- Socke---转
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP ...
- 020_自己编写的wordcount程序在hadoop上面运行,不使用插件hadoop-eclipse-plugin-1.2.1.jar
1.Eclipse中无插件运行MP程序 1)在Eclipse中编写MapReduce程序 2)打包成jar包 3)使用FTP工具,上传jar到hadoop 集群环境 4)运行 2.具体步骤 说明:该程 ...
- UNIX 系统常用管理命令
一. 引言 UNIX系统作为一种强大的多用户分时操作系统,在越来越多的场合受到了应用,同时,对UNIX的系统管理的要求也随之越来越多,但目前的书籍对UNIX系统管理命令介绍的并不是很多.本文主要是针对 ...
- 建议42:使用pandas处理大型CSV文件
# -*- coding:utf-8 -*- ''' CSV 常用API 1)reader(csvfile[, dialect='excel'][, fmtparam]),主要用于CSV 文件的读取, ...
- samtools+bcftools 进行SNP calling
两个软件的作用:1.samtools mpileup 主要是用于收集BAM文件中的信息,这个位点上有多少条read匹配,匹配read的碱基是什么,并将这些信息存储在BCF文件中.2.bcftools ...
- Python绿色版
Python 安装的时候,有个选项,是问你要安装给所有用户还是只安装给当前用户,你只要选择当前用户,就会把那些需要的 dll ,包括 msvcr90.dll 都给装到 Python 目录下,你只要把 ...