R vs Python:構建data.frame、讀取csv與統計描述
阿新 • • 發佈:2018-11-01
一、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