写在前面
近段时间,小编身体有所不适,所以耽误了更新,从这期开始一切恢复正常。上期文章中,小编讲述了python与移动平均策略,了解了怎么使用python去进行移动平均策略的确定与执行。对于python与金融数据的分析与处理会在后续文章中持续更新,而在本期文章中,小编将和大家聊一下python中的pandas库的一个高级用法(往后小编也会这样不断地讲解一些比较有用的python技巧,须知这将是提高效率的关键)。话不多说,正式进入主题。
pandas与虚拟变量矩阵构造
在日常的工作与学习中,经常会遇到一些具有固定几种类型的变量,对于这些变量,如果采用一般的数据分析方法去组织和处理会显得有所冗余或不足,因此便产生了因子类型(计量上更喜欢称之为虚拟变量),这种类型将数据很好地组织为几种类型的集合,极大地便于了数据的分析处理。本期文章,小编就将和大家聊一下怎么使用python去进行虚拟变量的生成与组织。为了便于说明,这里小编以目前为止世界范围内最受欢迎的20部影片为例来展示怎么使用python中的pandas库处理虚拟变量。关于影片的数据集,大家可以从这里下载影片(请到博客中进行数据集的下载)。先大致地浏览一下数据表的结构,你可以采用两种方式进行:直接打开Excel文件或者使用pandas库直接导入数据,然后使用相关命令查看。
最受欢迎的20部影片
小编这里的截图并不是上面命令的结果,截图直接来自于Excel文件,上面的命令只会显示Excel文件中的前六行记录。这份数据表主要包含了20部影片的片名、上映时间以及其归属的类型。小编下面需要做的就是对影片的类型进行虚拟化,这里首先解释一下这个概念。因为这20部影片累计有很多类型,所以小编将构建一个类型矩阵,其中每一列代表一种影片类型,而后根据影片是否属于类型状态进行0/1赋值,具体操作步骤为:
汇总各种类型信息;
根据影片数和影片类型生成虚拟变量矩阵;
根据各部影片的相关类型信息在虚拟变量矩阵中进行0/1赋值;
将矩阵和原始数据表信息汇总。
下面首先来汇总影片的类型,因为影片的类型信息存储在Excel表格中的TYPE一列中,而一部影片又不只一种类型,从表格中可以看出,类型之间以逗号分隔了开来,所以需要将每种类型都整理出来,具体方法如下。
第一行代码首先创建一个空的列表,而后的循环语句分别提取出每种影片的类型并存放在前面创建的列表之中,接着使用pandas库下的unique函数得出所有类型,可以明显得到,这些影片共存在16种类型,你可以使用'types.shape'来查看,这里就不再列示出来了。既然得到了影片类型,下面就该创建虚拟矩阵了,采用以下命令。
零阵数据框
下面需要根据影片类型对虚拟矩阵重新赋值,见以下命令。
赋值后的虚拟矩阵
现在是时候将虚拟矩阵和原数据表合并在一起了,这可以使用join函数实现。
修正后影片信息表
这样,就将生成的虚拟矩阵和原数据表合并在了一起,可以很方便地看出每部影片在所有类型下的具体赋值情况。虽然可以从一开始就在原始表中做这个操作,但小编强烈建议最好是将处理数据的流程单独放在一起,而将处理后的结果与原表合并,这样,你就不会因为一时的操作不当而引起原始数据的丢失。
写到一起吧
虽然上面的分析中,并没有用到多少代码,但是小编这里还是将其整合在一起吧,便于大家系统地观看。
后记
本文讲到这里就暂时告一段落了,本期文章介绍了怎么使用python去快速地生成虚拟变量矩阵并进行数据表的合并,这在统计学习与数据分析中至关重要。虽然本期文章相对较短,不过这种比较高级的python操作技巧,小编认为是必须的,所以在往后的写作中也会时不时地加入一些这种类型的文章,希望你们能够喜欢。最后再次感谢你们的支持与鼓励,你们的陪伴是小编前进的动力!
领取专属 10元无门槛券
私享最新 技术干货