zoukankan      html  css  js  c++  java
  • R vs Python:构建data.frame、读取csv与统计描述

    一、Python

      数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构。

    1.构建数据框

    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'])
    type(data)
    type(football)

    2.读取csv文件

    # 读取csv文件
    edu = pd.read_csv('C:\Users\Hider\Desktop\educ_figdp_1_Data.csv', na_values=':',usecols=['TIME','GEO','Value'])
    # na_values 把“:”符号认为缺失值

    3.统计描述

    # 前几行 缺失值取5行
    edu.head(10)
    
    # 后几行 缺失值取5行
    edu.tail(10)
    
    # 列名
    edu.columns
    
    # 行名
    edu.index
    
    # 汇总统计
    edu.describe()
    # count/mean/std/min/25%/50%/75%/max

    二、R语言

      R语言中自带data.frame数据框格式,tidyverse包中所使用的tibble类型更是数据框的增强版。

    1.构建数据框

    install.packages("dplyr")
    install.packages("tidyverse")
    library(dplyr)
    library(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)

    2.读取csv文件

    read.csv('C:\Users\Hider\Desktop\educ_figdp_1_Data.csv',na=':',) %>% select(TIME,GEO,Value) -> edu

    3.统计描述

    edu %>% head
    edu %>% tail
    edu %>% colnames
    edu %>% rownames
    edu %>% summary
    
    # 在tidyverse生态中的tibble是增强型的data.frame
    # 管道操作 %>%

    三、对比

    1.Python需要调用pandas包,R可以不用,但使用tidyverse包中的tibble更强;

    2.Python使用字典来构建,R中通过等长向量来合并生成;

    3.Python读取csv时可以选取列,R中是先读进内存再做筛选;

    4.Python缺失值为NaN,R中为NA;

    5.Python的index由0开始,R由1开始;

    6.R可向右赋值,更加灵活,并且单向的管道函数“%>%”能更加自由的揉捏数据。


    END 2018-11-01 00:22:43

  • 相关阅读:
    流的创建复制文件
    面试题
    异常
    多态
    继承
    【java】:Junit
    【Java】:ehcache
    【Java】:压缩成多个压缩卷
    【java】:常用工具类
    【javascript】:Highcharts实战
  • 原文地址:https://www.cnblogs.com/hider/p/9886737.html
Copyright © 2011-2022 走看看