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
R vs Python:构建data.frame、读取csv与统计描述的更多相关文章
- 将R非时间序列的data.frame转变为时序格式
将R非时间序列的data.frame转变为时序格式,常常会用到,尤其是股票数据处理中, 举例:dailyData包括两列数据:Date Close10/11/2013 871.9910/10/2013 ...
- LOAD DATA INFILE读取CSV中一千万条数据至mysql
作业要求 构建一个关系模式和课本中的关系movies(title,year,length,movietype,studioname,producerC)一样的关系,名称自定,在这个关系中插入1000万 ...
- python的pandas库读取csv
首先建立test.csv原始数据,内容如下 时间,地点 一月,北京 二月,上海 三月,广东 四月,深圳 五月,河南 六月,郑州 七月,新密 八月,大连 九月,盘锦 十月,沈阳 十一月,武汉 十二月,南 ...
- R 语言处理excel为data.frame
使用 R包 xlsx 或者 openxlsx 安装 install.packages("xlsx", repos="https://cloud.r-project.org ...
- R语言Data Frame数据框常用操作
Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可 ...
- 转载:R语言Data Frame数据框常用操作
Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可 ...
- 【Selenium + Python】之 Excel、CSV、XML文件读取数据并运用数据百度查询
目录 从Excel读取数据进行百度搜索 从CSV读取数据进行百度搜索 从XML读取数据进行登录操作 附:其他学习资料(<xml.etree.ElementTree模块>.<pytho ...
- python读取csv转换为dataframe
前言: 由于在处理结构性数据的时候经常会读取本地形如:.xls.xlsx.csv等的数据.所以今天就花了点时间来总结一下利用python读取csv数据并且转换为dataframe的数据框架.话不多说, ...
- Data manipulation primitives in R and Python
Data manipulation primitives in R and Python Both R and Python are incredibly good tools to manipula ...
随机推荐
- OpenCV入门指南----人脸检测
本篇介绍图像处理与模式识别中最热门的一个领域——人脸检测(人脸识别).人脸检测可以说是学术界的宠儿,在不少EI,SCI高级别论文都能看到它的身影.甚至很多高校学生的毕业设计都会涉及到人脸检测.当然人脸 ...
- 野指针(Wild pointer)和悬垂指针(dangling pointer)
详细参考如下: Dangling pointer(悬垂指针.迷途指针)和 Wild pointer(野指针) 迷途指针经常出现在混杂使用malloc() 和 free() 库调用: 当指针指向的内存释 ...
- Java入门:构造方法
什么是构造方法 类体中有两大形式的成员,其中一个是成员方法(另一个就是成员变量啦~).成员方法又分两种,一种是普通成员方法,另一种是构造方法(有的资料中也称之为构造函数). 所谓构造方法,就是这个类在 ...
- GO_06:GO语言基础之struct
结构struct 1. Go 中的struct与C中的struct非常相似,并且Go没有class 2. 使用 type <Name> struct{} 定义结构,名称遵循可见性规则(即首 ...
- python中的模块及路径(2)
如果我们要添加自己的搜索目录,有两种方法: 一是直接修改sys.path,添加要搜索的目录: >>> import sys >>> sys.path.append( ...
- Java基础-包(package)的声明与访问
Java基础-包(package)的声明与访问 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.包的概念 Java中的包,其实就是我们电脑系统中的文件夹,包里存放的是程序员生成的 ...
- NAT—网络地址转换
参考链接:http://www.qingsword.com/qing/745.html 视频链接: 一.什么是NAT? NAT --- Network Address Translation 也就是 ...
- Mysql 插入时间时报错Incorrect datetime value: '' for column 'createtime'
在网上找了很多方法总结如下: 1.MySQL驱动版本的问题.这种一般是在mYSQL版本更新了之后才会报错.解决方法在jdbc里添加“&useOldAliasMetadataBehavior=t ...
- bzoj千题计划112:bzoj1022: [SHOI2008]小约翰的游戏John
http://www.lydsy.com/JudgeOnline/problem.php?id=1022 http://www.cnblogs.com/TheRoadToTheGold/p/67448 ...
- CSS3实战之box-shadow篇
box-shadow属性包含6个参数值:阴影类型.X轴位移.Y轴位移.阴影大小.阴影扩展和阴影颜色.这6个参数值可以有选择地省略. 现在我们用一个img元素来举栗子 我们先来写最简单的box-shad ...