R与Python手牵手:数据框的构建、读取与基本描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kMD8d5R/article/details/83747392

在双11免费Get新知识的人,才是最会花钱的人,也将是最会赚钱的人!

别的专场拼消费,唯有天善学院,投资你的未来!

640?wx_fmt=png

详情点击

作者黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。

邮箱:[email protected]


任务目标

这次任务目标是:1.在编程环境内创建数据框;2.在本地导入csv文件;3.进行最基本的数据描述性分析。在开始上代码之前,有必要对数据框这种数据结构进行一定的解释。数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构。


Python

在Python中要使用数据框的类型,需要加载pandas模块。

扫描二维码关注公众号,回复: 4090612 查看本文章
 
  

#加载包 import pandas as pd

构建数据框

 
  

data = {'year': [2010, 2011, 2012, 2010, 2011, 2012, 2010, 2011, 2012],        'team': ['FCBarcelona', 'FCBarcelona', 'FCBarcelona', 'RMadrid', 'RMadrid', 'RMadrid', 'ValenciaCF',                 'ValenciaCF', 'ValenciaCF'],        'wins':   [30, 28, 32, 29, 32, 26, 21, 17, 19],        'draws':  [6, 7, 4, 5, 4, 7, 8, 10, 8],        'losses': [2, 3, 2, 4, 2, 5, 9, 11, 11]        } football = pd.DataFrame(    data, columns=['year', 'team', 'wins', 'draws', 'losses']) football .dataframe tbody tr th {    vertical-align: top; } .dataframe thead th {    text-align: right; }


640?wx_fmt=png


读取csv文件

下面的csv格式数据可以在以下网址取得:

https://github.com/DataScienceUB/introduction-datascience-python-book

 
  

edu = pd.read_csv('G:/Py/introduction-datascience-python-book-master/files/ch02/educ_figdp_1_Data.csv',                  na_values=':', usecols=['TIME', 'GEO', 'Value'])   #na_values是把“:”符号认为是缺失值的意思 edu .dataframe tbody tr th {    vertical-align: top; } .dataframe thead th {    text-align: right; }


640?wx_fmt=png

              ..........                                   .........                       

640?wx_fmt=png

384 rows × 3 columns


数据基本描述

 
  

#取前几行 edu.head() .dataframe tbody tr th {    vertical-align: top; } .dataframe thead th {    text-align: right;


640?wx_fmt=png

 
  

#取后几行 edu.tail() .dataframe tbody tr th {    vertical-align: top; } .dataframe thead th {    text-align: right;


640?wx_fmt=png

 
  

#观察列名称 edu.columns


 
  

Index(['TIME', 'GEO', 'Value'], dtype='object')


 
  

#观察行名称 edu.index


 
  

RangeIndex(start=0, stop=384, step=1)


 
  

#汇总统计 edu.describe()


 
  

.dataframe tbody tr th {    vertical-align: top; } .dataframe thead th {    text-align: right; }


640?wx_fmt=png

640?wx_fmt=gif


R

R是面向数据的一门语言,自带数据框类型(data.frame)。不过我们的介绍将会用tidyverse框架下的dplyr介绍,因为它在处理很多问题上更为便捷。

 
  

#加载包 pacman::p_load(tidyverse)

构建数据框

 
  

year=c(2010, 2011, 2012, 2010, 2011, 2012, 2010, 2011, 2012) team=c('FCBarcelona', 'FCBarcelona', 'FCBarcelona', 'RMadrid', 'RMadrid', 'RMadrid', 'ValenciaCF',                 'ValenciaCF', 'ValenciaCF') wins=c(30, 28, 32, 29, 32, 26, 21, 17, 19) draws=c(6, 7, 4, 5, 4, 7, 8, 10, 8) losses=c(2, 3, 2, 4, 2, 5, 9, 11, 11) football = tibble(year,team,wins,draws,losses) football


640?wx_fmt=png

读取csv文件

 
  

read_csv('G:/Py/introduction-datascience-python-book-master/files/ch02/educ_figdp_1_Data.csv', na=":") %>%#na的设置时把“:”认作缺失值的意思 select(TIME,GEO,Value)-> edu edu Parsed with column specification: cols(  TIME = col_integer(),  GEO = col_character(),  INDIC_ED = col_character(),  Value = col_double(),  `Flag and Footnotes` = col_character() )


640?wx_fmt=png

                 .........                                   .........                     

640?wx_fmt=png


数据基本描述

 
  

#取前几行 edu %>% head


640?wx_fmt=png

 
  

#取后几行 edu %>% tail


640?wx_fmt=png

 
  

#观察列名称 edu %>% colnames


640?wx_fmt=png


 
  

#观察行名称 edu %>% rownames

(结果太长,在此不展示了~~)

 
  

#汇总统计 edu %>% summary      TIME          GEO                Value       Min.   :2000   Length:384         Min.   :2.880   1st Qu.:2003   Class :character   1st Qu.:4.620   Median :2006   Mode  :character   Median :5.060   Mean   :2006                      Mean   :5.204   3rd Qu.:2008                      3rd Qu.:5.660   Max.   :2011                      Max.   :8.810                                     NA's   :23    


比较分析

首先,从调用的包来说,python没有pandas是不能使用dataframe数据结构的,R则自带有data.frame数据结构,但是在tidyverse生态中的tibble则是增强型的data.frame,能够满足更加便捷的功能。其次,就构造数据框而言,python用了字典来构造(字典即键-值对),其中每个值对应的是一个列表(注意,R和python的列表概念大不相同);在R中,首相通过构造每个属性的向量,然后把同等长度的向量合并,从而构造数据框。再次,读取csv文件的时候,两者其实功能相近,不过pd.read_csv可以在函数中选择要读的列,而在R中我是先读了全数据框再选择这些列。另外需要注意的是,python把缺失值表示为NaN,而R中则是NA。最后,我们发现在描述性数据分析中,两种语言也是大同小异。值得注意的是,python中行名称开头是0,而R则是1.python沿用了计算机的语言,所有开始都是0;而R则更加符合人类的直观理解,开始的一行标注为第1行。

需要提到的是,我在R中用了不一样的编程风格,与传统的R编程也有所不同。比如用“->”来给右边的变量赋值,很多计算机程序员可能会有意见,认为赋值就是右边的东西给左边,其实人类的思考模式向来就是从左到右的,比如“1 + 1 = 2”,再加上管道操作“%>%”也是单向的,这种灵活的编程模式让数据科学家更加自由而富有灵性地在环境中操纵数据。




今日

爆款

如何搭建金融信贷风控中的机器学习模型
4折优惠等着你 扫描 下图二维码 即可学习 点击 阅读原文 加入SVIP可免费学习


640?wx_fmt=png

猜你喜欢

转载自blog.csdn.net/kMD8d5R/article/details/83747392
今日推荐