á áááášá¥ áá R ááá Python á á áááá ᣠášáµáá ášá°á»á ᣠáá£á á¥á ášáášá áá áááµá«áµ ášá áá áá¹ á áá áááµ áá á ááá®áᜠášááá á© áœáááœá á¥á áª.á áááá¶áœá á«áááᢠáá á áá«á³áá ááá³, á¥ááá áá áá£á¥áᜠá¥á áááá®áœ á á°áá á áá á áá°áá.
ášáá áœáá ááá á ááá±á ááááᜠá á£á á³áá á áá áá¬áᜠááµá¥ á«ááµá áá ášá³á ášáášá áááá£á áªá« áŽááá®áœá ááá³á°á ááᢠá¥á á áá£á¢áᜠáá ášáá«áááµá ááá á áá¥ááµ á¥áá²áá£á á© á«ááážáᢠá áááá áááœá, á R ááµá¥ á°áá³á³á ááá á¥ááŽáµ á¥áá°áá á© ááá, á¥á á á°áá«áá.
á á ááá¹ áá
áµ á R ááµá¥ á á£á á³áá ášáááµá áá¬áᜠá áá£á¥ á¥ááášáá«áá ᢠá¥ááá
á á€á°-ááœáááµ ááµá¥ ášá°á«á°á±áµ áá¬áᜠáážá tidyverse
á¥á á¥áá²áá á¥áœá data.table
. á¥á ášá¥áá±á á áá£á¥ á áá³áµá pandas
á Python ááµá¥ á á£á á³ááá ášáášá áµáá°á á¥á
áá¢
á¥á ášáá«á ááá® ááááá á¥á á áá á áá áá ášáµáá³á ááµá®áµ á°áá£á«áµá á¥áµášááážá áµášáµ á á á ááá ášáášá áµáá°á ááááµ á°ášá á á°ášá á¥ááá³ááá¢
ááá¶áœ
ášáááµ ááµá¥ á«ááµ áá¬áᜠááµá¥ á á áá± ááµá¥ á áá³ááµ ášáášá áááá£á áªá« áµá«ááœá á¥ááŽáµ áášááá á¥áá°ááœá ášášá± áá áœáá á¥áá° ááá áá áªá« áášááµ áá«áááá ááœááá¢
á R á¥á Python áá«ášá áá ášá áá£á¥ áá©áá¶áœ
1.1.ášá¥á á á°áá£á«áµá ááµášáµ
1.2.áá°á£
1.3.áášá á áá ááµášá
1.4.ááŽáᜠá¥á OOP
1.5.ášá§á᧠ááµáá®áœ
1.6.ášááᥠááá á®áœ áµáááá ááá£ážá áá¬áᜠá¥ááµ áááµ
2.1.á¥ááá³á
2.2.á³á³
2.3.áááµ áá¬ááœá á áá«á áá ááᥠá áá«á áá ášááᥠáá¬ááœá ááá á ášááááážáá á áá¶áœ ááášá¥ ášáµááœá á áá£á«áµ áá áá§á°á á¥á áá°á£á°á¥ ášá ášáŽááᜠá áá£á á á¥ášáµ (UNION) ášá ášáŽááᜠá ááµá ááááá (á°áááá) áá°ášá³á ášááµá®á¶áœ á°áá£á«áµ á¥á ášá°á°á á áá¶áœ á R á¥á Python ááµá¥ á áášá áááá áªá« ááŽáᜠáá«ášá á«áá ášáááááµ á°áá ášá¥ áá°áá°áá« ášáµááá á¥á á á¥áá°áá áá á áá ášá³á°á³ á¥ááµ
á áášá áµáá°á áá ááááµ á«ááµ ášá¥áá ááááµ ááœááá¢
á R á¥á Python áá«ášá áá ášá áá£á¥ áá©áá¶áœ
ášáááá áá° á á ááášá ááá áááµášá ááá á á°áá«áá áµá©ášáµ áá°á§ážá ášááá¡ á¥ááµ áá áá áá¥áŠáœá á¥á°á£áá.
ášá¥á á á°áá£á«áµá ááµášáµ
á ááµ á¥á
á áá° R ášá°á«á á áá á°áá£á«á¶á¹á áááµášáµ ášá¥á
á áµáá áááá
á á«áµáááááµáᢠá á á¥áááá¹ ááá³áᜠáá
á R ááµá¥ ášá°ááá° á áá°áá, áá á°áá£áááµ á«áá áá. á á®áµá ááµá¥ á«ááµ á°áá£á«á¶á¹ ááµá¥ á áá±á á«áµáááááµ á¥á
áá ááµáá£áµ á áá á á
á¥ááµá ááá áá ášá¥á
áá áµá á¥á ášá°áá£á©á áµá á áááᜠá ááá áá°áááµá¢ á R ááµá¥ á á¥á
á á¥á á á°áá£á áµáᜠáá«ášá á«áá ááá«ášáµ áµáᥠá®áá ááᢠpackage_name::function_name()
.
á áááá ááµá¥ ᣠá á°áá«áá ᣠáµáá á ááá
á áá¥ááµ ášáá¬á
á°áá£á«áµá áá¥á«áµ á¥áá° ááá²á ááá á«áᢠá ááµ á¥á
á á²áááµ á¥ááá áá á áá áµá áá°á áá, ááá³á. pandas
á¥ááá áá ášáážáµ áµá á¥á
á áá áááá pd
. ášá¥á
á á°áá£á á áá¥á¥ á á©á áá°áá³á package_name.function_name()
.
áá°á£
á R ááµá¥ áá ááµ ááá á¥áŽáµ áááá°á¥ ááµáµ áá áá ášá°ááá° ááᢠobj_name <- value
ááá á¥áá³á á ááµ áá á á¥á©á ááááµ á¢áááµáᣠá R ááµá¥ á«áá áá á ášá¥á©áááµ ááááµ á áááááµ á¥áŽá¶áœá áá° á°áá£á áá᪠á¥áŽá¶áœ áááá á¥á
á áá ááááá¢
á áááá ááµá¥á£ áá°á£ ášáášáááá á á ááµ ášá¥á©áááµ ááááµ á¥á» ááᢠobj_name = value
.
áášá á áá ááµášá
á¥áá á á á£á ááá ášáá áá©áá¶áœ á á. á R ááµá¥ ᣠáášá á áá á á ááµ áááá«á á¥á áááá ášá°ááá¹ á á«ááµ á áá€á± ááá ááµá¥ á«á«áµá³á á£
á áááá ááµá¥ áášá á áá ášáá® áááá«á á¥á ášá°áášá á ááá á áášá á ááá ááµá¥ ášá°ááážáá ášáášášá»áá á á«á á á«á«áµáµáᢠáµááá
ááµá x[i:j]
á Python ááµá¥ áš j á á£áá á á«á«áµáµáá¢
á R notation ááµá¥ á á áá³á áášá á áá ááµá¥ áá©áá¶áœá á áᢠx[-1]
ášáášášá»á á áµá°áá áááá ášá¬áá°á©á áá¥áš ááá®áœ áááá³á. á áááá ááµá¥á£ á°áá³á³á ááµá³áá» ášááá£á ášáášášá»áá á á«á á¥á» ááá¢
ááŽáᜠá¥á OOP
R OOPá á á«á± ááááµ áá°áá¥á«á, áµááá
áá³á á áœáá ááµá¥ áœáá«áá tydiverse
ááá
ááá áááá pandas
. ááá á¥áá³á áá
ášá¥á á°ášá£á á áµá°á«ášáµ ááá ááœáá.
á á áá á áááá, á R ááµá¥ á«á á¥ááᜠááŽáᜠášáážáá (áµá S3 áááᜠášá°ááááá, áá á á£á á¥áá á«áá°ááá± ááᜠᚠOOP á á°áá£á ááᜠá á). á á¥áá ááá áá á áááµášáµ á¥áá±á á á°ááš ááááµ ášáá«áµá¬á± á á ááá á°áá£á«áµ á¥á» á áá¢
ášá§á᧠ááµáá®áœ
áááá£áµ áá
áµá áá pandas
áá á áá áµááá á áááá, áá áµáááá ááá¥á«á«áµ á¥ááá«áá.
áá«ášáá áµáá¶áœá áááá³á á¥á á áµá« áŠá³ áá á ááµááá á¥áááœá ááááµáá£áµ, ášá§á᧠ááµáá á áááµ áá áá ááœáá. á¥ááá«á¢ ášá ááµá áµááµ áá€áµ ášá ááµ á°áá£á áá° ááá á«áµá°ááá, á¥á áá«ášáá áá€á¶áœá á á«áµááá¡.
áá«ášáá áµáá¶áœá á á°áá«á© ááá®áœ ááµá¥ ášááášááœá áµá ášáášá°ááá ášá®áµ áá³á á¥ááá°áµá¡-
temp_object <- func1()
temp_object2 <- func2(temp_object )
obj <- func3(temp_object2 )
á á á°á á°ášá°á 3 áµá«ááœá á ášááááá, á¥á ášá¥á«áá³áá³ážá áá€áµ á á°ááš ááá ááµá¥ á°ááá§á. áá á¥áá° á¥ááá± ášáá, á¥ááá áá«ášáá á¥ááᜠá á«áµááááá.
ááá á°áá ášá£á°á£ áá áá€ááŽá á°á áááᜠášá áá ášá³ááá¢
obj <- func3(func2(func1()))
á áá á áá£á, áá«ášáá áµááµ áá€á¶áœá á ááµááá¥áá, ááá áá ášá°á°á© á°áá£á«áµ áá á®áµ ááá ᥠá¥á á á á£á áá¹ á áá°áá.
á R ááµá¥ ášááᥠáá°áµá á á°ááášá° á áá«á³ á áá«ášáŠáœá á¥áááášá³áá, á¥á á°áá³á³á áµá«ááœá á á°áá«á© áááá¶áœ á«ášáááá.
á á€á°-ááœáááµ ááµá¥ ášá§á᧠ááµáá®áœ tidyverse
á áŠáá¬á°á© ášá°á°áá áš %>%
.
obj <- func1() %>%
func2() %>%
func3()
áµááá
ášá¥á«áá áá€áµ á¥áááµá³áá func1()
á¥á á¥áá° ááááªá«á áááá á«áµá°ááá func2()
, ášáá«á ášáá
á áµááµ áá€áµ á¥áá° ááááªá«á áááá á¥ááááá func3()
. á¥á á áášášá»á á á¥áá ááµá¥ ášá°ášááááµá áááá áµáá¶áœ á¥ááœááá obj <-
.
ášáá á«ááµ áá ášááá¶áœ á á°á»á á áá
áá á°ááážááá¡-
Ð data.table
á°áá°áá¶áœ á á°áá³á³á ááááµ á¥á
á áá áááá.
newDT <- DT[where, select|update|do, by][where, select|update|do, by][where, select|update|do, by]
á á¥á«áá³áá± á«á¬ á ááᜠááµá¥ ášáá°ááá áᶠá¥áá áá€áµ áá áá ááœáá.
Ð pandas
á¥áá°ááá
á«á áµá«áᜠá áá¥á¥ ááá«á«á.
obj = df.fun1().fun2().fun3()
á¥ááá«á¢ á ášáŽááœáá á¥áááµá³áá df á¥á ášá¥á·á áᎠáá áá fun1()
, ášáá«á ááŽáá áá°ááá áá€áµ á¥áá°áá¥á«áá fun2()
á áá fun3()
. ášá°ááá áá€áµ á á ááµ ááá ááµá¥ á°ááá§á ááá .
ášááᥠááá á®áœ
á R á¥á Python ááµá¥ á«á ášáášá á áááá®áœ á°áá³á³á áážáᣠáá ášá°áá«á© áµáᜠá áážáá¢
áááá«
áááµ á á á
á áááá/ááá³áµ áµá
ášá ášáŽá ááá
á
data.frame, data.table, tibble
ášááᥠáá¬á
á ááµ-áá¬áµ ášá¥áŽá¶áœ áááá
á¬áá°á
á°ášá³á³á á ááá³áᜠááá á áá¹á
áááá ááµá¥ ááááá©
á£áá¥á á°ášá á áá ášá¥ á«ááá ááá
á
áááá
áááá áááµ (á²ááµ)
ášáá á á³áœ á áá³ááµ ááᜠá£á áªá«áµá á¥á áá©áá¶áœá á á áá£á¥ ááµá¥ á¥áááášá³ááá¢
áµáááá ááá£ážá áá¬áᜠá¥ááµ áááµ
á ááááªá«, á áá áœáá ááµá¥ áµááá«áááµ áá¬áᜠáµáᜠá¥ááááá³áá.
á¥ááá³á
áŠááŽáá áµá á£á¢á«-
á€á° áá»áááµ tidyverse
á RStudio ášáá°á ášáááá á³ááá²áµáµ á ááµá áááá á°ááᢠtidyverse
ášááᥠáá°áµá ášáá«ááá á áµá°áá ášáá¬ááœá áµá¥áµá¥ á«áá á²áá ášá¥ááá
ááµá¥ 5 á± ášCRAN áášáá» 10 ááᥠááá¶áœ ááµá¥ á°á«áµá°ááá¢
ášá€á° ááá
áá± á¥áá¥ááµ ášáášá°ááµá á¥á
áᜠá«áá ááᢠggplot2
, dplyr
, tidyr
, readr
, purrr
, tibble
, stringr
, forcats
. á¥á«áá³áá³ážá á¥ááá
áá¬áᜠá ááµ ášá°áá°á áœáá áááá³áµ ášá³áá áážáᢠááá³á dplyr
ááášá á á«á«á ášá°áá ᚠᣠtidyr
ááá¡á áá° áá¹á
á
ᜠáááá£áµ ᣠstringr
á áá¥ášááááᜠááµá«áµá á«ááááᣠá¥á ggplot2
á á£á á³áá ášáá ášáášá á¥áá³ áá³áªá«áᜠááµá¥ á áá± ááá¢
á¥á
á tidyverse
áááááµ á¥á áááá ᥠááá ááᣠá¥á±á á á¥á ááá© áš SQL áá áá
ááá áá á°áá³á³á ááá¢
á³á³
á data.table
áš H2O.ai ááµ á¶á ááá¢
ášá€á° ááá áá± ášááááªá« áááµ ášá°á«áá°á á 2006 ááá¢
ášá¥á
á á áá£á¥ á¥áá° ááµá¥ áá¹ á áá°ááᢠtidyverse
á¥á á R ááµá¥ á«ááµá ááá²á ášááᥠáááᜠášá áá á«áµá³áá°áá, áá á á°áá³á³á áá á á°áá£á«áááµ á ášáá°á ááá³ á°áµááá·á.
á áá
áá¬á
ááµá¥ á«áá á°áá ášá¥ áá ášá°á°ášá ááá ááá áá á®áœ á á«á¬ á
ááᜠááµá¥ á°ááážáá, á¥á á áá£á¡á ášá°ášáá data.table
á SQL ááµá¥ á¥áá°áá
á«á ááá á«ááá data.table[ WHERE, SELECT, GROUP BY ]
ášáá á¥á á á¥áá«á¬ ášáá°á áá á á«áá áášáá ášáá«ááµ áá¥ááµ áá.
áááµ
áŠááŽáá áµá á£á¢á«-
ášá€á° ááá áá± áµá ášáá£á "ášááá á³á³" ášááá á¢á®ááá«á áá ááᣠá£áá¥á áá¬áµ ášá°ááá© ášáášá áµá¥áµáŠáœá ááááá ááá¢
á pandas
á ááªá«áá ááµ ááªá ááá¢
á Python ááµá¥ ášááᥠáµáá³áá á á°ááášá°, á¥á©á áá pandas
á á. ášášáµááá ááá®áœ áášáá ášáá«á ááá® á¥áµáš ááµáá á¥áá³ áµášáµ áááááá ááá áá á á áášá á¥áá²ááœá ášáá«áµáœáá á á£á á¥á á£áá¥á-á°ášá á¥á
áá¢
á°ášá᪠áá¬ááœá á áá«á áá
á áá
áœáá ááµá¥ ášá°á¥á«á©áµ á¥á
áᜠá áá ášá³á R á¥á Python áµááá¶áœ ááµá¥ á áá°á«á°á±á. ááá á¥áá³á áµáᜠááµá áááá« á¢ááá ᣠášá áá®áá³ áµáááµá ášá«á ᣠášáá« á á°ášá᪠áá«á pandas
ááŽá³ á áá°áá.
á R ááµá¥ á¥á ááœá á áá«á áá
á¢á«ááµ á ááµ áá áš RStudio áááµ á á«á£á¢á ášášáá± á áµááááá áá¬á
á R ááµá¥ á¥ááŽáµ á¥áá°áá«á á áµááµáá á«áá áááá. á¥á
ááœá ááá«á áá°á ááá áµááá áá áá. install.packages()
á áá¥á³ á R á á«á± ááµá¥ á ááµá¬áµ.
# ÑÑÑаМПвка пакеÑПв
install.packages("vroom")
install.packages("readr")
install.packages("dplyr")
install.packages("data.table")
ášá°á«á á áá, áá¬áá¹á áááááµ á«áµáááá, ááá
á á á á¥ááá áµááá á¥á
á áá áááá library()
.
# пПЎклÑÑеМОе ОлО ОЌпПÑÑ Ð¿Ð°ÐºÐµÑПв в ÑабПÑее ПкÑÑжеМОе
library(vroom)
library(readr)
library(dplyr)
library(data.table)
á áááá ááµá¥ á¥á ááœá á áá«á áá
á¥ááá²á«áᣠááá
ááááá ášá«áᣠá¥ááá²á«ááµ pandas
á¥á«áµá áá«á á«áµááááá³á. á¥áá° áŠáá¬á²áá á²áµá°áá ášáµá¥áá ááµáá ááá á°áááá áááá± á¥á ášáášá°ááá áµááá á«áµáá¡á¢
pip install pandas
ášáá« áá° áááá á¥áááá³áá á¥á ášá°á«ááá á¥á
á á áµá¥áá á¥ááµáá£ááᢠimport
.
import pandas as pd
ááᥠá áá«á áá
áášáá ááá£áµ á áášá áµáá°á ááµá¥ á á£á á áµááá ášáááµ á°ášááᜠááµá¥ á áá± áá. ááá±á Python á¥á R, ášá°ááá, ášááááá ááá®áœ áášáá áááááµ á°á á¥áµááœá áá°á¡áá³á: ášá á«á£á¢ ááááœ, ášá áááášá¡ ááááœ, áµá áš ááŸáœ, áááá á áááµ ášááᥠáá³ááœ.
á áœáá ááµá¥ á¥á ášááᥠáµá¥áµáŠáœá á¥áá áááá-
- ášááá á ááá²ááµ áááµ ááá¶áœá¢
- ášá³áá³áá ášá°á³á᪠á³á³ áµá¥áµá¥á¢
ááá ááᥠá á¥á áá ááá¢
ááá¥á áá° R á áá«á ááá¡ áá á áᣠáªá©áᣠá áá£á¢
ááá¥á áá° á€á°-ááœáááµ ááá«á tidyverse
áááµ á¥á
áᜠá á: vroom
, readr
. vroom
áá áᥠáááá, áá ááá°áá± á¥á
áá¹ áá£áá© ááœáá.
á¥á
áµ áš vroom
.
vroom vs á áá£á¢
áááá áá á«á°ááávroom
áááµ ááá¢readr
? áá áá ááá± áá¬áᜠáášá¥á» á¥áá²á»á»á áááµášá á á á°ááá£ááá áá áá°ááµ á¥á áá¹á á ááµ á¥áá°ááááᢠášvroom á°áá áá£á¥ á áá± áá³á± á áá³ááµ ášááᥠáœáá®áœ á ááµ áªáááµ áá°ášá á ááœááᣠáµááá á¥áá±á á¥ááŽáµ á á°á»á ááá³ á ááµ áááµášá á áá³ááµ áá³áŠáœá áá áááá¢vroom vs á áá£á¢
áááá áááµ áá áááµ áá?vroom
áreadr
? á á áá áá ááá±áá áá¬áᜠáášá¥á» ááá³á á á á á°áá ááááá áá°ááµ á¥áá£áá«ážáááᢠá°áá ááá ᥠášáá«áµášáµáážá áá³á¶áœ á áá±vroom
á áášáá áá á«á á áá³ááµ áœáá®áœ á áµááµáá áªáááµ áá°ášá á ááœáá, áµááá á¥áá±á á¥ááŽáµ á á°á»á ááá³ ááááµ á¥áá°ááœá áá°á¥ á áá¥ááµ.
á áá áœáá ááµá¥ ááá±áá ášááᥠáá«á áá¬ááœá á¥áááášá³áá-
ááᥠáá° R: vroom á¥á á á áá«á áá
# install.packages("vroom")
library(vroom)
# ЧÑеМОе ЎаММÑÑ
## vroom
ga_nov <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")
ááᥠáá° R: á áá£á¢ á áá«á áá
# install.packages("readr")
library(readr)
# ЧÑеМОе ЎаММÑÑ
## readr
ga_nov <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")
á á¥á
á ááµá¥ vroom
, áš csv / tsv ášááᥠá
áážáµ ááá ááá áá, áá«á ášáášáááá á á°áá³á³á© áµá á°áá£á áá. vroom()
, á á¥á
á ááµá¥ readr
áá¥á«áá³áá± á
áážáµ ášá°ááš á°áá£á á¥áá áááá read_tsv()
О read_csv()
.
ááá¥á áá° R: data.table á áá«á áá
Ð data.table
ááá¥á ášáá«á á°áá£á á áᢠfread()
.
ááᥠáá° R: data.table á¥á á á áá«á áá
# install.packages("data.table")
library(data.table)
## data.table
ga_nov <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")
á áááá ááµá¥ ááá¥á á áá«á áá: pandas
áš R áá¬áᜠáá á«ááá
á, á áá
ááá³ á áá£á¥ á á£á á
áᥠáá pandas
áááá readr
, áááá«á±á pandas
ááá¥á ášášáµááá áŠá³ áá ášá
ááœáá, á¥á á áá
áá¬á
ááµá¥ áá ášá€á°á°á¥ á°áá£á«áµ á á read_*()
.
read_csv()
read_excel()
read_sql()
read_json()
read_html()
á¥á ášá°áá«á© á
áážá¶áœ ááᥠáááá ᥠášá°áá°á ááᜠá¥á á°áá£á«áµá¢ áááááœá áá á á ááᢠread_table()
ááá read_csv()
áááá á áá áá áŽáᎠášáááµ ááá«áá áááášáµ.
á áááá ááµá¥ ááá¥á á áá«á áá: pandas
import pandas as pd
ga_nov = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_nowember.csv", sep = "t")
ga_dec = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_december.csv", sep = "t")
titanic = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/titanic.csv")
ášááᥠáá¬ááœá ááá á
á ášáŽá á³áá³áá, ášá«ááá, áá³ á á áá³ášá°á³ááªáá áŸá³ ááá« ášáá«ášááœá¢
ááá áá ášá°á³á᪠áŸá³ á áá»á áá°ááž ášáášá á áá«ášá¥ ášá¥ááá°-áá³ á®áµ ááá áµáá áá áá á áá¥ááµ.
áá áá áááµášá á ááµ áµáᜠááá« á¥ááá¥á«áá, á ááµá¡á 2 á áá¶áœ (ášá®áµ á¥á ášá¥ááá°-áá³ áµá) á¥á 2 ášáµáᜠá¥á» ášáááá áµ á áá ášá¥.
á R ááµá¥ ášááᥠáá¬á ááá á: tidyverse, dplyr
ášá³áœ á£áá ášá®áµ áá³á ááµá¥ á°áá£á©á á áá áá ášá°ááááá ášááᥠáá¬á á¥ááá¥á«áá tibble()
.
á R: dplyr ááµá¥ ášááᥠáá¬á ááá á
## dplyr
### ÑПзЎаÑÐŒ ÑпÑавПÑМОк
gender <- tibble(id = c(1, 2),
gender = c("female", "male"))
á R: data.table ááµá¥ ášááᥠáá¬á ááá á
á R: data.table ááµá¥ ášááᥠáá¬á ááá á
## data.table
### ÑПзЎаÑÐŒ ÑпÑавПÑМОк
gender <- data.table(id = c(1, 2),
gender = c("female", "male"))
á Python ááµá¥ ášááᥠáá¬á ááá á: pandas
Ð pandas
áá¬ááœá ááá á á á áá«á³ á°ášááᜠáášáááá, á ááááªá« áááá -áááµá á¥ááá¥á«áá, ášáá«á áááá -ááá±á áá° ášááᥠáá¬á á¥áááá£áá.
á Python ááµá¥ ášááᥠáá¬á ááá á: pandas
# ÑПзЎаÑÐŒ ЎаÑа ÑÑейЌ
gender_dict = {'id': [1, 2],
'gender': ["female", "male"]}
# пÑеПбÑазÑеЌ ÑлПваÑÑ Ð² ЎаÑаÑÑейЌ
gender = pd.DataFrame.from_dict(gender_dict)
á áá¶áœá ááášá¥
á á¥ášá ášáá°á©á£ážá á áá ášáŠáœ á á°ááá ášááá á© á¥áá²á«áá á áá¶áᜠášááá á© ášááᥠá áá¶áœ ááá ááœááᢠááá áá áµáá³áá ááá«ááµ, á¥áá° á ááµ á°áá¥, á ááá á áá ášá¥ ááµá¥ ášááááµá áááá ááá¶áœ á á«áµáááá.
áµááá ášááá© á áá ášá¥ áá ášáá³ášáááážá ášááááªá« ááááᜠá áá± á ááµááá áášáááœá ááœá³áµ á¥á áá áášá ášá«ááá áá á°áš áµááµá³ áá» ááµášá ááá¢
á áá¶áœá á R: tidyverse, dplyr ááášá¥
á áá£á¥ dplyr
áš SQL áá áá
ááá áá á á£á á°áá³á³á ááᣠá¥á±á ášáá«áááµ ášáá áá
á á¥á
á á áá¥ááµ ááá£á á©á³áá¢
á áá¶áœá áááášá¥, á°áá£á©á áá áá select()
.
ášáá á á³áœ á áášá°ááµ áááá¶áœ á áá¶áœá ááášá¥ ášááµáœáá£ážá ášá®áµ áá³ááᜠá áá¢
- ášáááááµá ááá¶áœ áµá ááááá
- áá°á á áááá«ááœá á áá áá ášá ááµ áµááœá áááášá±
- á áášá á áááµ ááá á á áá± ááµá¥ á£áá ááááá ášááᥠáá¥ášáµ
á R: dplyr ááµá¥ á áá¶áœá ááášá¥
# ÐÑÐ±ÐŸÑ ÐœÑжМÑÑ
ÑÑПлбÑПв
## dplyr
### вÑбÑаÑÑ Ð¿ÐŸ ÐœÐ°Ð·Ð²Ð°ÐœÐžÑ ÑÑПлбÑПв
select(ga_nov, date, source, sessions)
### ОÑклÑÑÑ Ð¿ÐŸ ÐœÐ°Ð·Ð²Ð°ÐœÐžÑ ÑÑПлбÑПв
select(ga_nov, -medium, -bounces)
### вÑбÑаÑÑ Ð¿ÐŸ ÑегÑлÑÑÐœÐŸÐŒÑ Ð²ÑÑажеМОÑ, ÑÑПбÑÑ ÐžÐŒÐµÐœÐ° кПÑПÑÑÑ
закаМÑОваÑÑÑÑ ÐœÐ° s
select(ga_nov, matches("s$"))
### вÑбÑаÑÑ Ð¿ÐŸ ÑÑлПвОÑ, вÑбОÑаеЌ ÑПлÑкП ÑелПÑОÑлеММÑе ÑÑПлбÑÑ
select_if(ga_nov, is.integer)
á R ááµá¥ á áá¶áœá ááášá¥: data.table
á°áá³á³á áµá«áᜠá data.table
á áá á á á°ááš ááááµ áášáááá ᣠá á ááá¹ ááááªá« áá á á«á¬ á
ááᜠááµá¥ áá áááá®áœ á¥áá³á áááá« á á
áဠáá áᢠdata.table
.
DT[i,j,by]
ášáµ
á¥á - ášáµ ᣠáááµá á ášáµáᜠáá£á«áµ
j - ááášá¡|á ááá|á áµááᣠáááµáᢠááá¶áœá ááášá¥ á¥á áááá¥
á - ášááᥠáµá¥áµá¥
á R ááµá¥ á áá¶áœá ááášá¥: data.table
## data.table
### вÑбÑаÑÑ Ð¿ÐŸ ÐœÐ°Ð·Ð²Ð°ÐœÐžÑ ÑÑПлбÑПв
ga_nov[ , .(date, source, sessions) ]
### ОÑклÑÑÑ Ð¿ÐŸ ÐœÐ°Ð·Ð²Ð°ÐœÐžÑ ÑÑПлбÑПв
ga_nov[ , .SD, .SDcols = ! names(ga_nov) %like% "medium|bounces" ]
### вÑбÑаÑÑ Ð¿ÐŸ ÑегÑлÑÑÐœÐŸÐŒÑ Ð²ÑÑажеМОÑ
ga_nov[, .SD, .SDcols = patterns("s$")]
á°áááá .SD
áááá ááá¶áœ á¥áá²á°áá±á áµ ááá
áµááá³á, á¥á .SDcols
ášááááážáá ááá¶áœ á áá°á á áááá«áᜠááá ááᜠá°áá£á«áµá á áá áá ášááááážáá ášá áá¶áœ áµá á«á£á©á¢
á ááááᣠááá³áᜠááµá¥ á áá¶áœá ááášá¥
á áá¶áœá á áµá áááášá¥ pandas
áµáážáá áááá áá
ášá¥ á á ááᢠá¥á áá°á á á ááááŸáœá á áá áá á áá¶áœá á áµá áááášá¥ ááá ááááá á°áá£á®á¹á áá áá á«áµááááá³á drop()
О filter()
, á¥á áááá ááá=1, ášášáµáᜠááá
ááá¶áœá áá«ááµ á áµááá áááá ášáá«áááá±á áµ.
ááµáá á ááᥠá áááµ áááášá¥ á°áá£á©á áá áá select_dtypes()
, á¥á áá° áááá®áœ á«á«áµá³á ááá á á³á«áµáµ ášášáµáá¹ ááµá®áœ ááášá¥ á¥áá³ááŠáµ ášáááá± ášááᥠáááá¶áœá áááá á«áµá°áááá¢
á áááá ááµá¥ á áá¶áœá ááášá¥: pandas
# ÐÑÐ±ÐŸÑ Ð¿ÐŸÐ»ÐµÐ¹ пП МазваМОÑ
ga_nov[['date', 'source', 'sessions']]
# ÐÑклÑÑОÑÑ Ð¿ÐŸ МазваМОÑ
ga_nov.drop(['medium', 'bounces'], axis=1)
# ÐÑбÑаÑÑ Ð¿ÐŸ ÑегÑлÑÑÐœÐŸÐŒÑ Ð²ÑÑажеМОÑ
ga_nov.filter(regex="s$", axis=1)
# ÐÑбÑаÑÑ ÑОÑлПвÑе пПлÑ
ga_nov.select_dtypes(include=['number'])
# ÐÑбÑаÑÑ ÑекÑÑПвÑе пПлÑ
ga_nov.select_dtypes(include=['object'])
ášáµááœá á áá£á«áµ áá
ááá³áᣠášááá á áá ášá¡ ášá áá«á³ ááá³áµ áášáááœá ááá ááœááᣠáá ášáášášá»áá áá á¥á» áá°áá°á á«áµááááá³áᢠá áµáá, á°ášá᪠ááµáá®áœ ášááᥠáá°áµ áá°á±á áááá³á á¥á ášáá² áá á°áš áµááµá³á áááá.
ášáµááœá á R: tydyverse, dplyr á áá£á«áµ áá
Ð dplyr
á°áá£á© ášáµááœá ááá£á«áµ á«ááááá filter()
. á¥áá° ááááªá«á áááá ášááᥠáá¬á áááµá³áᣠášáá« ášáá£áªá« ááá³ááœá ááášáá«áá¢
á ášáŽáá ááá£á«áµ á áááá®á á áááá«ááœá á ááœáá áµ áá, á áá ááá³, á«á á¥á á¶áœ á¥á ášá°áá ášá¡á áµá á³áááá¹ ášá ááµ áµááœá áááá¹.
ááá£á«áµ á¥á áááá«á³á áááá«ááœá á²á áá ášáášá°ááµá áŠáá¬á°á®áœ áá ááá¡
- & ááá áá á á°ášá - áááá«á³á AND
- | - áááá«á³á ááá
ášáµááœá á R: dplyr ááµá¥ á áá£á«áµ áá
# ÑОлÑÑÑаÑÐžÑ ÑÑÑПк
## dplyr
### ÑОлÑÑÑаÑÐžÑ ÑÑÑПк пП ÐŸÐŽÐœÐŸÐŒÑ ÑÑлПвОÑ
filter(ga_nov, source == "google")
### ÑОлÑÑÑ Ð¿ÐŸ ЎвÑÐŒ ÑÑлПвОÑÐŒ ÑПеЎОМÑММÑÐŒ лПгОÑеÑкОЌ О
filter(ga_nov, source == "google" & sessions >= 10)
### ÑОлÑÑÑ Ð¿ÐŸ ЎвÑÐŒ ÑÑлПвОÑÐŒ ÑПеЎОМÑММÑÐŒ лПгОÑеÑкОЌ ОлО
filter(ga_nov, source == "google" | sessions >= 10)
ášáµááœá á R: data.table ááµá¥ á áá£á«áµ áá
ášáá á¥áá°á»áá©áµ á data.table
ášááᥠááᣠá áá£á¥ á á«á¬ á
ááᜠááµá¥ á°ááá·áá¢
DT[i,j,by]
ášáµ
á¥á - ášáµ ᣠáááµá á ášáµáᜠáá£á«áµ
j - ááášá¡|á ááá|á áµááᣠáááµáᢠááá¶áœá ááášá¥ á¥á áááá¥
á - ášááᥠáµá¥áµá¥
áááá© ášáµááœá ááá£á«áµ á«ááááá i, á á«á¬ á ááᜠááµá¥ ášááááªá«á áŠá³ á«áá.
á áá¶áœ á«á á¥á áµ áááá¶áœ á¥á ášá°áá ášá¡á áµá á³áááá¹ á ááá«á á ááááŸáœ áá°áá³áá¢
á áááá®á á á ááááŸáœ áá á¥áá° ááµá¥ á¥ááµ á ááµ ášá°á«á«á áážá dplyr
á & á¥á | áŠáá¬á°á®áœ á á©áá¢
ášáµááœá á R: data.table ááµá¥ á áá£á«áµ áá
## data.table
### ÑОлÑÑÑаÑÐžÑ ÑÑÑПк пП ÐŸÐŽÐœÐŸÐŒÑ ÑÑлПвОÑ
ga_nov[source == "google"]
### ÑОлÑÑÑ Ð¿ÐŸ ЎвÑÐŒ ÑÑлПвОÑÐŒ ÑПеЎОМÑММÑÐŒ лПгОÑеÑкОЌ О
ga_nov[source == "google" & sessions >= 10]
### ÑОлÑÑÑ Ð¿ÐŸ ЎвÑÐŒ ÑÑлПвОÑÐŒ ÑПеЎОМÑММÑÐŒ лПгОÑеÑкОЌ ОлО
ga_nov[source == "google" | sessions >= 10]
áá¥ášáááááœá á áááá áá£á«áµ: pandas
á ášáµáᜠá á£á« pandas
ááµá¥ ášáá£á«áµ áá á°áá³á³á data.table
, á¥á á á«á¬ á
ááᜠááµá¥ áášáááá.
á áá
ááá³ ášá áá¶áœ áá³ášá» ášááµ ášááᥠáááá áµá á áááášáµ áášáááá ᣠášáá« ášá áá± áµá á á«á¬ á
ááᜠááµá¥ á áµáááá° á¥á
áµ ááµá¥ áááᜠááœáá (áá³á df['col_name']
) ááá ášáá
á± á áá á«á á¥á
á¶áœ (áá³á df.col_name
).
ášááᥠáá¬á á á áá«á³ ááá³áᜠáá£á«áµ á«áµáááááµ á¥á«áá³áá± ááá³ á á
áá ááµá¥ áááᥠá áá áµá¢ áááá«á³á ááá³áᜠá áŠáá¬á°á®áœ á¥ááµ á ááµ ášá°á«á«á áážá &
О |
.
áá¥ášáááááœá á áááá áá£á«áµ: pandas
# ЀОлÑÑÑаÑÐžÑ ÑÑÑПк ÑаблОÑÑ
### ÑОлÑÑÑаÑÐžÑ ÑÑÑПк пП ÐŸÐŽÐœÐŸÐŒÑ ÑÑлПвОÑ
ga_nov[ ga_nov['source'] == "google" ]
### ÑОлÑÑÑ Ð¿ÐŸ ЎвÑÐŒ ÑÑлПвОÑÐŒ ÑПеЎОМÑММÑÐŒ лПгОÑеÑкОЌ О
ga_nov[(ga_nov['source'] == "google") & (ga_nov['sessions'] >= 10)]
### ÑОлÑÑÑ Ð¿ÐŸ ЎвÑÐŒ ÑÑлПвОÑÐŒ ÑПеЎОМÑММÑÐŒ лПгОÑеÑкОЌ ОлО
ga_nov[(ga_nov['source'] == "google") | (ga_nov['sessions'] >= 10)]
ášááᥠáµá¥áµá¥ á¥á áá°á£á°á¥
á áášá áµáá°á ááµá¥ á á¥ááµ á¥á á áá ášááááµ ááááᜠá áá± áá§á°á á¥á áá°á£á°á¥ ááá¢
á¥ááá á áµá«áᜠááášááá á«áá á áá£á¥ á ááá á ááááááážá á¥á áᜠáá á°á á³áµááá¢
á áá á áá£á ášááᥠáá¬á á¥áá° áá³á á¥áááµá³áá á³áá³áá, á¥á á á«á¢á ááá áá á áááµášáµ ášá²á¬á¶áœá áá¥á á¥á á áá«á áá á«á°á.
á R ááµá¥ ášááᥠááŠá°á á¥á áá°á£á°á¥: tidyverse, dplyr
Ð dplyr
á°áá£á© áá¡áµá á¥á
á áá áááá group_by()
, á¥á ááá°áá summarise()
. á á¥ááá±, dplyr
á ááµ áá ášá°áá£á á€á°á°á¥ á á summarise_*()
ááá áá ášáá
áœáá ááá áá ášá³ááá á áá£á¥ ááá³á°á áá, áµááá
áá° á¥áá°áá
ááááµ á«á« ááµá¥ á ááá£á.
áá°ášá³á ášáá°áá á°áá£á«áµá¡-
sum()
- áá ááá«min()
/max()
- áá á°á á¥á ášáá°á áámean()
- á áá«ámedian()
- áá«ášáálength()
- á¥ááµ
á R: dplyr ááµá¥ áá§á°á á¥á áá°á£á°á¥
## dplyr
### гÑÑппОÑПвка О агÑегаÑÐžÑ ÑÑÑПк
group_by(titanic, Pclass) %>%
summarise(passangers = length(PassengerId),
avg_price = mean(Fare))
áááµá«áµ group_by()
á ášáŽááá á¥áá° ááááªá«á áááá á áááá á³áá³áá, á¥á ášáá«á áá³áá á áááá·á Pclass, á á¥á± á áá«áááµ á ášáŽááœáá á á¡áµá á¥áá°áááá. áŠáá¬á°á©á á áá áá ášáá
áᶠá¥áá áá€áµ %>%
áá° á°áá£á© á¥áá° ááááªá«á áááá á°áááá summarise()
á¥á 2 á°ášá᪠ááµá®áœá á ááááá¡ áááá°áᜠО á áá«á_áá. á ááááªá«á áá, á°áá£á©á á áá áá length()
ášá²á¬á¶áœá á¥ááµ á«á°áá, á¥á á ááá°áá ááµá¥ á°áá£á©á á áá áá mean()
á áá«á ášá²á¬áµ áá á°áá¥ááá¢
á R: data.table ááµá¥ ášááᥠááŠá°á á¥á áá°á£á°á¥
Ð data.table
áááá© ááá°áá á¥á
á áá áááá j
á á«á¬ á
ááᜠááµá¥ ááá°á áŠá³ á«áá á¥á áá¡áµá by
ááá keyby
áŠáµá°áá áŠá³ á«áážá.
á áá
áá³á áá ášáá°áá á°áá£á«áµ áááá á ááµá¥ ášá°áááá áá á°áá³á³á áá dplyr
, áááá«á±á á¥ááá
ášáá ášá³á R á áá£á¥ ááµá¥ á°áá£á«áµ áážá.
á R: data.table ááµá¥ áá§á°á á¥á áá°á£á°á¥
## data.table
### ÑОлÑÑÑаÑÐžÑ ÑÑÑПк пП ÐŸÐŽÐœÐŸÐŒÑ ÑÑлПвОÑ
titanic[, .(passangers = length(PassengerId),
avg_price = mean(Fare)),
by = Pclass]
á áááá ááµá¥ ášááᥠááŠá°á á¥á áá°á£á°á¥á¡ pandas
áá§á°á pandas
áá ááá³á°ááᢠdplyr
, ááá áá áá
á°á± á°áá³á³á á áá°áá dplyr
á áá°áá data.table
.
ááá§á°á, ááŽáá áá áá groupby()
, ášááᥠááá ášáá°á á°á¥á áµá ášá áá¶áœ áááá ááá á«áµááááá³á.
ááá ááá ááŽáá áá áá ááœáá agg()
áááá áááµá ášááá á. ášáááá -ááá± áááᜠášáá ááá« á°áá£á«áµá ášáá°áá á©á£ážá ááá¶áœ áážá ᣠá¥á á¥áŽá¶á¹ ášáµáá á°áá£á«áµ áµáᜠáážáá¢
ášááááµ á°áá£á«áµ;
sum()
- áá ááá«min()
/max()
- áá á°á á¥á ášáá°á áámean()
- á áá«ámedian()
- áá«ášáácount()
- á¥ááµ
á¥á« reset_index()
ášá³áœ á£áá áá³á ááµá¥ ášáá á¢ááŽáá¶áœá á³áá áááµááá á¥á
á áá áááá pandas
ášááᥠáá°á£á°á¥ á áá áá£áªááœá¢
ááááµ áá° áá£á© ááµáá á¥áá²áá± ááá
áµááá³á.
á áááá ááµá¥ áá§á°á á¥á áá°á£á°á¥á¡ pandas
# гÑÑппОÑПвка О агÑегаÑÐžÑ ÐŽÐ°ÐœÐœÑÑ
titanic.groupby(["Pclass"]).
agg({'PassengerId': 'count', 'Fare': 'mean'}).
reset_index()
ášá ášáŽááᜠá áá£á ááá áá«
á°áá³á³á ááá á áááµ ááá ášáá« á áá á áá ášáŠáœá ášáááááá áµ áááᢠášá«ááá áášá á áá ášáŠáœá ááá ga_nov О ga_á²áŽ. á¥ááá á áá ášáŠáœ á ááá á ááµá¥ á°áá³á³á áážá, áááµá. á°áá³á³á á áá¶áœ á áážáᣠá¥á á á¥ááá á áá¶áœ ááµá¥ á«ááµ ášááᥠáááá¶áœá¢
áá ášáá¬áá á á¥á á²áŽáá á áá áš Google áµáá³ááᜠášáᣠáááµ ááᣠá áá ááá ááµá¥ áá áá ááᥠáá° á ááµ á áá ášá¥ á¥áá£áá«ááá¢
á R ááµá¥ á°áá ášáŠáœá á á áá£á áááááá¡ tidyverseᣠdplyr
Ð dplyr
á°áá£á©á á áá áá 2 á°áá ášáŠáœá áá° á ááµ ááááµ ááœáá bind_rows()
, á ášáŽáááœá á¥áá° áááá®á¹ ááá.
ášáµááœá á R: dplyr ááµá¥ á áá£á«áµ áá
# ÐеÑÑОкалÑМПе ПбÑеЎОМеМОе ÑаблОÑ
## dplyr
bind_rows(ga_nov, ga_dec)
á°áá ášáŠáœá á R: data.table ááµá¥ á á áá£á ááááá
á¥áá²áá ááá ášá°áá³á°á ááá á áá°áá, á¥áá áá rbind()
.
ášáµááœá á R: data.table ááµá¥ á áá£á«áµ áá
## data.table
rbind(ga_nov, ga_dec)
á Python ááµá¥ á°áá ášáŠáœá á á áá£á áááááá¡ pandas
Ð pandas
á°áá£á© á ášáŽáááœá áááááá á«ááááá concat()
á¥áá±á ááá£áá ášáááᜠááááá áá°áá« ááá á«áµááááá³áá¢
áá¥ášáááááœá á áááá áá£á«áµ: pandas
# веÑÑОкалÑМПе ПбÑеЎОМеМОе ÑаблОÑ
pd.concat([ga_nov, ga_dec])
ášá ášáŽááᜠá ááµá ááááá
ášááá°áá á áá¶áœ áá° ááááªá«á á áá ášá¥ á ááá ášáášáá©á áµ áááᢠá¥á áá á¥á á áá ášáááá ášá¥ááá³ á áá ášá¥á á²á«á ááœá áá (ááá³á ášáœá«á áášá á«áá á áá ášá¥) ášá áá³ááµ áá£áá» áášááᜠáá (ááá³á ášáááµ áá)á¢
á áá«á³ ášááá£á á áááá¶áœ á á-
áá°á á²á á á°á«áá á ášáŽá ááµá¥ á³áá³áá á ááµ á ááᢠáá³ášá°á³ááªá ášáá³ á®áµ áá ášááááµá¡-
1 - áŽáµ
2 - áááµ
á¥áá²áá, á°áá ášá¥ áá áá - ášáá£áá» ááœáá áá³. áá°á³ááªáᜠáŸá³ ášá áá áá¹ ášáá ášáášá á áá«ášá¥ áááááµ ášáµááá°-áá³ áµá ášááá«á ááµá¥ áášáá á áá¥á. áá³ áá° á ášáŽáá á³áá³áá.
á ááµá á°áá ášá¥ ááááá á R: tidyverse, dplyr
Ð dplyr
á ááµá ááááá á á ááá ášá°áá£á á€á°á°á¥ á áá¡-
inner_join()
left_join()
right_join()
full_join()
semi_join()
nest_join()
anti_join()
á á ááááµ ááµá¥ á á¥ááµ á¥á
á áá ášááá left_join()
.
á¥áá° ááááªá«áá¹ áááµ áá᪠á¥áŽá¶áœ, ášáá ášá°áášáá©áµ á°áá£á«áµ áááááá áááµ á°áá ášáŠáœá áááµá³á, á¥á á¥áá° áŠáµá°áá áá᪠á¥áŽáµ by áááááá ááá¶á¹á áá¥ááµ á áá¥ááµ.
á ááµá á°áá ášá¥ ááááá á R: dplyr
# ПбÑеЎОМÑеЌ ÑаблОÑÑ
left_join(titanic, gender,
by = c("Sex" = "id"))
ášá ášáŽááᜠá ááµá ááááá á R: data.table
Ð data.table
á°áá£á©á á áá áá á°áá ášáŠáœá á ááá ááááá á«áµááááá³á merge()
.
á áá á°áµ () áá ášáá°á© áááá®áœ á data.table ááµá¥
- x, y - áááááá á ášáŽáááœ
- á - á ááá±á á°áá ášáŠáœ ááµá¥ á°áá³á³á áµá á«áá áááááá ááá ášááá á ááµ
- by.x, by.y - á á áá ášá¡ ááµá¥ ášá°áá«á© áµáᜠá«áážá ášá ááµ áµáᜠáááá³á
- all, all.x, all.y - ášááááá á áááµ, ááá áááá ášáµáᜠášááá±á á ášáŽááᜠáááá³á, all.x ášáá« ááááá á á á«á áá áááá³á (ášááááªá«áá á°áá ášá¥ áááá ášáµáᜠáá°áá), all.y - áš áá áááá³á. ášáá ááááá ááá (ášááá°áá á°áá ášá¥ áááá ášáµáᜠáá°áá)á¢
ášá ášáŽááᜠá ááµá ááááá á R: data.table
# ПбÑеЎОМÑеЌ ÑаблОÑÑ
merge(titanic, gender, by.x = "Sex", by.y = "id", all.x = T)
á ááµá á áá ášá¥ á áááá áááááá¡ pandas
á¥áá²áá ááµá¥ data.table
, á ááµá¥ pandas
á°áá£á© á ášáŽáááœá áááááá á«ááááá merge()
.
á ááá³áᜠááµá¥ ášááááµ () á°áá£á áááá®áœ
- á¥ááŽáµ - ášáááááµ á áááµ: áá«, áá, áá«á, ááµá£á
- áá - á ááá±á á°áá ášáŠáœ ááµá¥ á°áá³á³á áµá á«áá ááá ášááá á ááµ
- á áá«_áá ᣠá áá_áá - ášááá á áá¶áœ áµáᜠᣠá á°áá ášá¥ ááµá¥ ášá°áá«á© áµáᜠá«áážá
á ááµá á áá ášá¥ á áááá áááááá¡ pandas
# ПбÑеЎОМÑеЌ пП клÑÑÑ
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")
áá°ášá³á ášááµá®á¶áœ á°áá£á«áµ á¥á ášá°á°á á áá¶áœ
ášááµá®áµ á°áá£á«áµ ášáµáá á°áá£á«áµ áá á°áá³á³á áážáᣠá¥á á¥á áá á áášá áµáá°á ááµá¥á á¥á á áá ááááᢠááá áá á¥áá° áá ááá« á°áá£á«áµá£ ášááµá®áµ á°áá£á«áµ ášááªáá ášááᥠáá¬á ášášáµáᜠá¥ááµ á áááá¡áá¢
á áá ášá± ášááµá®á±á á°áá£á á áá áá ááªáá ášááᥠáá¬á á á áá³ááµ ááµááá¶áœ áá°ášáµ áá° áááᜠá¥áášáááá, áááµá. á ááµá áá ááá á á áá«á³ ááµá®áœá¢ á¥á á á¥á«áá³áá± ááµá®áµ áá ášáá³á¥ áµá«ááœá á¥áá°á«áá. ášá¥ááá áµá«áᜠáá€áµ á á¥á«áá³áá± ááµáá ááµá¥ áááá³á, áááµá. á á áá ášá¡ ááµá¥ á«ááµá á á áá ášášáµáᜠá¥ááµ á³áááá©.
ááá³á, á ášáŽááá á¥ááá°áµ á³áá³áá. ášá¥á«áá³áá± áµá¬áµ áá á ááá ááá ááµá¥ áá á«á á áá¶á á¥áá°áá áš ááµááµ á¥ááœáááá¢
áá áá áááµášá á á¥á«áá³áá± ááµáá ááµá¥ á áá ááµáá áá áµá¬á± áááá£á áµ ášá áá ášá«á¢á ááá ášá²á¬áµ á á ááá á᪠á á¥á«áá³áá± ááµáá ááµá¥ ááááµ á áá¥á ᣠášáá« ášá¥á«áá³áá±á áµá¬áµ áá á á ááµ á«á¢á ááá ááµá¥ á£á ááá áµá¬á¶áœ áá áášááá ᢠ.
ášááµá®áµ á°áá£á«áµ á R: tidyverse, dplyr
á á³á²áµ á áá¶áœá ááášááᣠášášáµá áá§á°á á³áá ááᣠááµá¥ dplyr
á°áá£áá á«ááááá mutate()
.
áášáá á ááµá á áá§á°á ášáá ášá°ááážáá áœáá ááá³áµ ááœááᢠPclass á¥á ááµá©á á á á²áµ á ááµ áá ááá ááá«. á ááá á á°áá ášá¡á áááá á¥á ášááµá á¥áŽá¶áœá áášááá ááá« á áá°áá á°ášá áá áá°áá ášá ááá.
ášááµá®áµ á°áá£á«áµ á R: dplyr
group_by(titanic, Pclass) %>%
mutate(Pclass_cost = sum(Fare)) %>%
ungroup() %>%
mutate(ticket_fare_rate = Fare / Pclass_cost)
ášááµá®áµ á°áá£á«áµ á R: data.table
ášáááµáá áµáá° ááá ášááµá¥ áá á°áá³á³á áá dplyr
, á ášáŽááá á ááµá áá° ááµá®á¶áœ áášááá á«áµááááá Pclass. ášá¥á«áá³áá± ášáµá áá ášáááá°áá ášá¡áµáá áá á á á á²áµ á ááµ á á³á á¥á á á¥á«áá³áá± á¡áµá ááµá¥ ášá¥á«áá³áá±á á²á¬áµ áá áµáá» ášááá°áá áµ á ááµ áášáá©á¢
á á²áµ ááá¶áœá ááášáá data.table
áŠáá¬á°á á°ááá·áᢠ:=
. ášáá
á á³áœ á¥á
áá á áá áá áœááá ášááá³áµ áá³á áá data.table
ášááµá®áµ á°áá£á«áµ á R: data.table
titanic[,c("Pclass_cost","ticket_fare_rate") := .(sum(Fare), Fare / Pclass_cost),
by = Pclass]
ášááµá®áµ á°áá£á«áµ á Python: pandas
á á²áµ á ááµ ááášá á áá± ááááµ pandas
- á°áá£á©á áá áá assign()
. ášá²á¬á¶áœá á᪠á á«á¢á ááá ááá ááá ᣠášáµááœá á³áá§áµá ᣠá°áá£á©á á¥áá ááááᢠtransform()
.
ášá³áœ áá° á ášáŽáá ášááášááá áµ ášáááµá áá³á áá á³áá³áá á°áá³á³á 2 á áá¶áœ.
ášááµá®áµ á°áá£á«áµ á Python: pandas
titanic.assign(Pclass_cost = titanic.groupby('Pclass').Fare.transform(sum),
ticket_fare_rate = lambda x: x['Fare'] / x['Pclass_cost'])
á°áá£á«áµ á¥á ááŽáᜠášá°á¥á³á€ á áá ášá¥
ášáá á á³áœ á á°ááášáµáážá á¥á áᜠááµá¥ á«á áášááᜠáá ášá°áá«á© áµá«ááœá ááášááá ááŽáᜠáá«ášá ášá°á¥á³á€ á áá ášá¥ á áá¢
áááá«
á¥ááá³á
á³á³
áááµ
ááᥠá áá«á áá
vroom()
/ readr::read_csv()
/ readr::read_tsv()
fread()
read_csv()
ášááᥠáá¬ááœá ááá á
tibble()
data.table()
dict()
+ from_dict()
á áá¶áœá ááášá¥
select()
áááá j, á á«á¬ á
ááᜠááµá¥ ááá°á áŠá³
ášáááááµá ááá¶áœ áááá á á«á¬ á
ááᜠááµá¥ á¥ááááá / drop()
/ filter()
/ select_dtypes()
ášáµááœá á áá£á«áµ áá
filter()
áááá i, á á«á¬ á
ááᜠááµá¥ ášááááªá« áŠá³
ášáá£áªá« ááá³ááœá á á«á¬ á
ááᜠááµá¥ á¥ááášáá«áá / filter()
áá§á°á á¥á áá°á£á°á¥
group_by()
+ summarise()
áá᪠á¥áŽá¶áœ j + by
groupby()
+ agg()
ášá ášáŽááᜠá áá£á á
á¥ášáµ (UNION)
bind_rows()
rbind()
concat()
ášá ášáŽááᜠá ááµá ááááá (á°áááá)
left_join()
/ *_join()
merge()
merge()
áá°ášá³á ášááµá®áµ á°áá£á«áµ á¥á ášá°á°á á áá¶áœ áášáá
group_by()
+ mutate()
áááá j áŠáá¬á°á©á á áá áá :=
+ áááá by
transform()
+ assign()
áá°áá°áá«
áááá£áµ á á ááá¹ ááµá¥ á á£á á¥á©áá ášááᥠáá°áµ á á°áá£á áá ášáááœá©áµ á áá°áá ᣠáµáááá á á áµá°á«ášá¶á¹ ááµá¥ áµá á°á¶áŒá á«ášá ááá á á ááá¹ ááµá¥ ášá°á°á áá áášá á R / Python ááµá¥ á«áá áášá áá áááµá«áµ ášááᜠáŽááá®áœ áá á«áá á°áµá°á áá á¢
ášáá á¥áá°á»áá©áµ ášáœáá á áá ášáµáá ááá ášá°á»á á¥áá°áá á«ááá á áµá°á«ášáµ ááá«á á³ááá ááá±áá ááááᜠášááá á¥áµáá ááááá ááá á áµááá ášááá á áá«ášáážá ááá°á°áµ ááá¢
áœááá ášáá°á±á£ ášá¥áá á á²áµ á°áááá¢áᜠá áááᎠá°áµá°á áá
ášáµáá á á°á£á¥
ášáášá°ááµ á¥á áᜠááµá¥ ášáµááá á áµá«á áá ááá?
á á áµá°á«ášá¶á¹ ááµá¥ ášáášá¡áµá áááá«áµ áá»á ááœáá.
á á³á°á³ á¥áá± ááµá¥ ášá°áááá¡ á°á áááᜠá¥á» áá³á°á ááœááá¢
ášáµááá ášááᥠáááá£á áªá« á¥á á áá ááá (á¥á á áá«á®áœá ááášá¥ ááœáá)
-
45,2%ááœá á19
-
33,3%á³á³.á áá ášá¥14
-
54,8%pandas23
42 á°á áááᜠáµáᜠá°á¥á°ááᢠ9 á°á áááᜠáµáá á°á á
አá áµááááá¢
ááá: hab.com