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

  • 相关阅读:
    UVa 1151 Buy or Build【最小生成树】
    UVa 216 Getting in Line【枚举排列】
    UVa 729 The Hamming Distance Problem【枚举排列】
    HDU 5214 Movie【贪心】
    HDU 5223 GCD
    POJ 1144 Network【割顶】
    UVa 11025 The broken pedometer【枚举子集】
    HDU 2515 Yanghee 的算术【找规律】
    Java基本语法
    Java环境变量,jdk和jre的区别,面向对象语言编程
  • 原文地址:https://www.cnblogs.com/hider/p/9886737.html
Copyright © 2011-2022 走看看