Python是数据处理的常用语言,当然也可以用在教育学领域。下面以一篇期刊论文——为例,阐述使用Python处理教育学领域数据的思路和过程。为什么用这篇期刊文章呢,因为这篇文章的数据处理是我做的,比较熟,不用琢磨作者们的思路,也不用重新收集数据再复现,比较省事……

一、数据类型与处理目的

在教育学研究中,数据类型的分类如下:

访谈相关数据,以访谈得到的录音、文本为主;

实证研究的数据,以问卷数据为主;

文献相关数据,包括文献题录数据、文献数据库数据等;

学习行为数据,使用相关学习行为记录设备、智能设备、手机APP等记录得到的学习者的学习行为数据。

相应的,数据处理的目的包括如下几个方面:

数据的编码与转换;

数据清洗,包括异常值、奇异值、缺失值的处理,数据格式统一等;

数据的分类计算、筛选、规整、合并等。

数据概览,包括常规统计指标计算、数据分布、区间统计、对比图表等。

数据处理是数据分析和定量研究的先导性工作,选取和合适的工具决定着研究效率。数据处理的工具很多,Excel、R、Python、MATLAB和其他数据处理软件等。常规数据处理建议使用Excel,若涉及到批量、重复的处理多个数据文件,处理逻辑较为复杂,建议使用Excel自带的VBA,R或者Python完成数据处理工作。作者对Python比较熟悉,所以本文使用Python举例子。

在本研究中,数据类型是第3种、即文献相关数据,数据处理的目的是数据清洗和数据的分类计算、筛选、规整、合并等,数据处理逻辑相对复杂,使用的是Python编程处理。不同的数据类型、数据处理目的需要不同的思路和做法,下文仅以本研究为例,阐述数据处理的过程。

二、数据处理思路

将本研究定义的世界一流大学(138所)和我国世界一流大学建设高校(42所)的发文数据从爱思唯尔的数据库中下载下来,得到的数据如下图:12个excel文件,后缀为.xls。

点开可以可以看到数据格式如下。

可以看到,excel的数据格式以不规则数据表的形式呈现,且每个excel中有多个sheet,每个sheet表征一所大学各个学科的发文数据,sheet的前几行最关键的信息是大学名称,下方数据表每行代表该所大学每个二级学科的发文特征。

每个sheet滑动到底部,可以看到每个数据表有330多条数据,每个Excel有几十个sheet(每个sheet代表一所高校,包含该所大学2014-2019年在各个学科发文数据)。本研究的数据处理的目的是:对这些数据进行处理,以一级学科为行、各个大学为列进行整理、合并,为下面以学科发文结构为基础的大学类型的聚类分析和接下来的建设评价做基础,要实现这个处理目的当然也是手动复制粘贴,但是每所高校的一级学科的位置并不固定、需要处理的sheet和Excel文件过多,手动复制粘贴性价比不是特别高,所以本研究使用的处理方法是使用Python编程整理相应数据。

本文使用一级学科表征数据,将数据库中涉及到的一级学科先提取出来,放置在一个.txt文件中。爱思唯尔数据库将所有学科分为27个。

本研究共需要6个指标:Scholarly Output、Scholarly Output (growth %)、Citations Authors、Authors (growth %)、Citations per Publication、Field-weighted Citation Impact。

所有指标均在sheet的下方的数据表里,由于sheet格式不规则,假如不是特别精通pandas的话,推荐使用xlrd和xlwt读写这种不规则的excel表,其中xlrd读取原excel表,xlwt生成新excel表。此外涉及到多个excel文件的循环读写,还需使用python自带的os模块。所以本研究用到的Python模块如下。

import xlrd

import xlwt

import os

待处理数据分析完毕后,分析输出数据的格式。从前面分析过程可知,需要输出180所高校在27个一级学科上的表现,衡量方式以6项指标表征。可以看到这是一个三维数据。

为了在二维的excel表格中输出三维数据,将高校设为纵坐标,一级学科设为横坐标,同时在6个sheet中呈现反映各个高校的各个一级学科在6个指标中的表现情况,数据形式参见下文第三部分的数据处理结果。

分析到这里,数据处理的思路总结起来也是很简单的。

三、数据处理过程

数据处理过程的核心思想是:按照输出的数据格式循环处理每个输入的sheet表。输出的excel表有6个sheet,每个sheet代表一个指标。我的思路是分指标循环进行提取。由于数据处理代码的复用性不高,在这里列举伪代码如下:

循环1:按指标循环:

循环2:按学校循环:

抽取各个学校的相应指标

再得到相应的数据后,使用xlwt,按照我们预计的格式,写入到Excel中,得到我们的结果,代码如下。

def data_excel(workbook, subject, school_subject, name):

sheet = workbook.add_sheet(name)

for i in range(len(subject)):

sheet.write(i+1, 0, subject[i])

# 生成每个学校的内容

ii = 1

for school in school_subject:

school_col = school_subject[school]

sheet.write(0, ii, school)

jj = 1

for col in school_col:

sheet.write(jj, ii, school_col[col])

jj += 1

ii += 1

print(name + '已完成')

return workbook

with open(r'data/发文表现情况整理/学科.txt','r') as f:

subject = f.read().split('\n')

dataPath = 'data/发文表现情况整理/data/'

path_type = ['abroad','china']

nameGroup = ['Scholarly Output','Scholarly Output growth','Citations','Authors','Authors growth','Citations per Publication','Field-weighted Citation']

for ii in range(2):

t= path_type[ii]

path = dataPath + t + '/'

workbook = xlwt.Workbook(encoding = 'utf-8')

for i in range(7):

school_subject = get_school_subject(i)

workbook = data_excel(workbook, subject, school_subject, nameGroup[i])

workbook.save(r'data/发文表现情况整理/result/result-{}.xls'.format(path_type[ii]))

print('\n\n')

好的,太长不看,直接看结果……

横坐标是学科,纵坐标是高校,每个sheet是指标,已经达到了预期的数据处理目标,据说相对于手工处理而言,极大的提高了效率,对于一个曾经的工科学生的体会是,这些机械重复的事情为什么要自己做……

四、一些思考

本研究凝聚了作者们的大量心血和老师们的精心指导,在这里向他们表示由衷的感谢和敬意!数据处理只是本研究一个微小的方面,希望大家多多关注论文内容,多多拍砖。将这数据处理部分展现出来一方面是希望能够回顾和总结做过的工作,现在回想起来这部分工作也并不复杂(都做完了哪还有觉得复杂的道理- -);另一方面也是希望梳理一下教育学的数据处理的类型和方法,以期为自己在将来的研究中提供一种“就这,这些数据处理我都能做”的错觉,增强一点自己的科研自信心。

python教育学_使用Python处理教育学领域的数据——以某篇期刊论文为例相关推荐

  1. 使用Python处理教育领域的数据——以一篇期刊论文为例

    Python是数据处理的常用语言,当然也可以用在教育学领域.下面以一篇期刊论文:程哲 卢兴富 李福林|世界一流大学建设成效评价分析--基于科研论文的视角为例,阐述使用Python处理教育领域数据的思路 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  4. 【100天精通python】Day1:python入门_初识python,搭建python环境,运行第一个python小程序

    目录 专栏导读 1 初始python python 概述 python的应用领域 应用python的公司 2 搭建python 开发环境 2.1 安装python(以windows 系统为例)(1)下 ...

  5. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  6. excel python插件_利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

  7. 网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器

    相关文章: 本篇将会涉及: HTTP 基本认证 对HTTP Basic认证进行密码暴力攻击测试 什么是HTTP 基本认证 HTTP基本认证(HTTP Basic Authentication)是HTT ...

  8. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  9. 日本python教材_自学python:完整入门python书单!

    小伙伴总在询问Python的书,哎呀,动力所致,书单来了.9本,涵盖范围蛮大的.Python热持续中,入门计算机首选语言... 1.<父与子的编程之旅> 关注威信工宗号:程序员大牛,即可领 ...

最新文章

  1. 【二维树状数组】See you~
  2. LeetCode 6 Z 字形变换
  3. Druid 配置_配置WebStatFilter
  4. 深度学习tensorflow框架的张量
  5. 【Python】Python中常用的字符串处理函数
  6. lasso模型交替方向matlab_TCGA系列学习笔记(7)建模及模型评价
  7. 基于JAVA+SSH+MYSQL的外卖点餐系统
  8. Selenium 对元素element的操作举例
  9. 阿里百万架构师打造的 Java并发编程实战笔记,理论到实践一键吃透
  10. LLVM PASS类pwn题入门
  11. 基于Java的学生管理系统
  12. 2021年机修钳工(中级)报名考试及机修钳工(中级)考试资料
  13. 基于51单片机的指纹锁设计(附带密码解锁)
  14. java mat类型_JVM MAT使用分析详解
  15. Mysql Table doesn't exist问题解决
  16. 逆置线性表(线性表)
  17. 手把手教你制作docSet文档(用于Dash或zeal)
  18. CF855B Marvolo Gaunt‘s Ring题解
  19. matplotlib绘制四个子图
  20. 拳头公司是哪个国家的

热门文章

  1. 【iCore2 双核心板视频教程一】iM_LAN 100M 以太网模块UDP例程(包含视频教程)
  2. ibatis学习笔记(三)java实体跟表映射.xml文件详解
  3. iOS - 让view触发点击事件
  4. Ubuntu下千千静听Audacious的安装步骤详解
  5. 老虎Sitemap生成器 0.2
  6. R语言:异常数据处理
  7. 3 镜像仓库Harbor安装
  8. C++ Primer 5th笔记(chap 16 模板和泛型编程)std::move
  9. C++(三)——类和对象(上)
  10. CPA相关功耗分析(一)