Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Markaad ka raadiso R ama Python internetka, waxaad ka heli doontaa malaayiin maqaallo iyo kiiloomitir oo doodo ah oo ku saabsan mawduuca midkee ka fiican, dhakhso badan oo ku habboon ku shaqeynta xogta. Laakiin nasiib darro, dhammaan maqaalladan iyo khilaafyadani maaha kuwo si gaar ah faa'iido u leh.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Ujeedada maqaalkani waa in la isbarbar dhigo farsamooyinka farsamaynta xogta aasaasiga ah ee xirmooyinka ugu caansan ee labada luqadood. Ka caawi akhristayaasha inay si dhakhso ah u bartaan wax ayan garanayn weli. Kuwa wax ku qora Python, soo ogow sida loo sameeyo wax la mid ah R, iyo lidkeeda.

Inta lagu guda jiro maqaalka waxaan ku falanqeyn doonaa jumlada xirmooyinka ugu caansan ee R. Kuwani waa xirmooyinka ku jira maktabadda tidyverseiyo waliba xirmada data.table. Oo isbarbardhig eraygooda pandas, xirmada falanqaynta xogta ugu caansan ee Python.

Waxaan u mari doonaa tillaabo tillaabo dhammaan dariiqa falanqaynta xogta laga soo bilaabo rarida ilaa fulinta hawlaha daaqada falanqaynta iyadoo la adeegsanayo Python iyo R.

Tusmo

Maqaalkan waxaa loo isticmaali karaa sidii xaashi khiyaamo ah haddii aad illowday sida loo sameeyo qaar ka mid ah hawlgalka habaynta xogta ee mid ka mid ah xirmooyinka la tixgelinayo.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

  1. Farqiga ugu weyn ee u dhexeeya R iyo Python
    1.1. Helitaanka Hawlaha Xidhmada
    1.2. Meelaynta
    1.3. Tilmaanta
    1.4. Hababka iyo OOP
    1.5. Dhuumaha
    1.6. Qaab-dhismeedka Xogta
  2. Dhowr eray oo ku saabsan baakadaha aan isticmaali doono
    2.1. habaysan
    2.2. miiska
    2.3. pandas
  3. Ku rakibida baakadaha
  4. Soodejinaya Xogta
  5. Abuuritaanka khadadka xogta
  6. Doorashada tiirarka aad u baahan tahay
  7. Shaandhaynta safafka
  8. Kooxaynta iyo Isku-darka
  9. Midowga miiska toosan (UNION)
  10. Isku xidhka miiska toosan (JOIN)
  11. Hawlaha aasaasiga ah ee daaqada iyo tiirarka la xisaabiyay
  12. Shaxda xiriirinta ee u dhexeeya hababka xogta ee R iyo Python
  13. gunaanad
  14. Sahan gaaban oo ku saabsan xirmada aad isticmaasho

Haddii aad xiisaynayso falanqaynta xogta, waxaad heli kartaa my telegram и youtube kanaalada. Inta badan waxa ku jira waxa u heellan luqadda R.

Farqiga ugu weyn ee u dhexeeya R iyo Python

Si ay kuugu fududaato inaad ka beddesho Python una gudubto R, ama lidkeeda, waxaan ku siin doonaa dhawr qodob oo muhiim ah oo aad u baahan tahay inaad fiiro gaar ah u yeelato.

Helitaanka Hawlaha Xidhmada

Marka xirmo lagu shubo R, uma baahnid inaad qeexdo magaca xirmada si aad u gasho hawlaheeda. Inta badan tani kuma badna R, laakiin waa la aqbali karaa. Uma baahnid inaad soo dejiso baakidh gabi ahaanba haddii aad u baahan tahay mid ka mid ah hawlaheeda koodka, laakiin si fudud u wac adiga oo sheegaya magaca xirmada iyo magaca shaqada. Kala-soocida u dhexeeya xirmada iyo magacyada shaqada ee R waa xiidan labanlaab ah. package_name::function_name().

Python dhexdeeda, liddi ku ah, waxaa loo arkaa mid caadi ah in loogu yeero shaqooyinka xirmada iyadoo si cad loo qeexayo magaceeda. Marka xirmo la soo dejiyo, badanaa waxaa la bixiyaa magac la soo gaabiyo, tusaale; pandas badanaa magac been abuur ah ayaa la adeegsadaa pd. Shaqada xirmada waxaa laga helaa dhibic package_name.function_name().

Meelaynta

Gudaha R, waa wax caadi ah in la isticmaalo fallaadho si loo qiimeeyo shay. obj_name <- value, inkasta oo hal calaamad oo siman la oggol yahay, calaamadda isleeg ee R waxaa badanaa loo isticmaalaa in lagu gudbiyo qiyamka si loo shaqeeyo doodaha.

Python dhexdeeda, meelaynta waxaa si gaar ah loogu sameeyaa hal calaamad oo siman obj_name = value.

Tilmaanta

Waxa kale oo jira farqi aad u weyn halkan. Gudaha R, tusmaynta waxay ka bilaabataa hal waxayna ka kooban tahay dhammaan walxaha la cayimay ee kala duwanaanshaha natiijada,

Python dhexdeeda, tusmaynta waxay ka bilaabataa eber oo kala duwanaanshaha la xushay kuma jiro qaybta u dambaysa ee lagu cayimay tusmada. Sidaas naqshadeynta x[i:j] Python gudaheeda kuma jiri doonto curiyaha j.

Waxa kale oo jira farqi u dhexeeya tilmaan-bixinta taban, ee qoraalka R x[-1] waxay soo celin doontaa dhammaan walxaha vector marka laga reebo kan ugu dambeeya. Python dhexdeeda, qoraal la mid ah ayaa soo celin doona oo kaliya qaybta ugu dambeysa.

Hababka iyo OOP

R waxay u fulisaa OOP hab u gaar ah, tan waxaan ku qoray maqaalka "OOP ee luqadda R (qaybta 1): fasallada S3". Guud ahaan, R waa luqad shaqaynaysa, wax kasta oo ku jirana waxay ku dhisan yihiin hawlo. Sidaa darteed, tusaale ahaan, isticmaalayaasha Excel, u tag tydiverse way ka sahlanaan doontaa pandas. Inkastoo tani ay noqon karto fikradayda shakhsi ahaaneed.

Marka la soo koobo, walxaha R ma laha habab (haddii aan ka hadalno fasallada S3, laakiin waxaa jira fulinta OOP kale oo aad u yar). Waxa jira hawlo guud oo keliya oo si kala duwan u habeeya iyadoo ku xidhan fasalka shayga.

Dhuumaha

Malaha kani waa magaca pandas Ma noqon doonto gebi ahaanba sax, laakiin waxaan isku dayi doonaa inaan sharaxo macnaha.

Si aan loo badbaadin xisaabinta dhexdhexaadka ah oo aan loo soo saarin walxaha aan loo baahnayn ee jawiga shaqada, waxaad isticmaali kartaa nooc ka mid ah dhuumaha. Kuwaas. u gudbi natiijada xisaabinta hal shaqo una gudub mid ku xiga, hana kaydin natiijooyinka dhexdhexaadka ah.

Aan soo qaadano tusaalaha koodka soo socda, halkaas oo aan ku kaydinno xisaabinta dhexdhexaadka ah walxo kala duwan:

temp_object <- func1()
temp_object2 <- func2(temp_object )
obj <- func3(temp_object2 )

Waxaan sameynay 3 qalliin oo isku xiga, natiijadii mid walbana waxaa lagu badbaadiyay shay gaar ah. Laakiin dhab ahaantii, uma baahnin walxahan dhexdhexaadka ah.

Ama xitaa ka sii daran, laakiin aad u yaqaan isticmaalayaasha Excel.

obj  <- func3(func2(func1()))

Xaaladdan oo kale, ma aanaan badbaadin natiijooyinka xisaabinta dhexdhexaadka ah, laakiin akhrinta koodka leh shaqooyinka buulka ah waa mid aad u dhib badan.

Waxaan eegi doonaa dhowr habab oo ku saabsan habaynta xogta ee R, waxayna ku fuliyaan hawlgallo la mid ah siyaabo kala duwan.

Dhuumaha maktabadda tidyverse waxaa fuliyay hawlwadeenku %>%.

obj <- func1() %>% 
            func2() %>%
            func3()

Markaa waxaan qaadanaa natiijada shaqada func1() una gudbi sida doodda kowaad func2(), markaas waxaan u gudbineynaa natiijada xisaabintan sida doodda koowaad func3(). Iyo dhamaadka, waxaan ku qor dhammaan xisaabaadka lagu sameeyay shayga obj <-.

Dhammaan kuwan kor ku xusan ayaa si ka wanaagsan ereyada lagu muujiyey memekan:
Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

В data.table silsiladaha waxaa loo isticmaalaa si la mid ah.

newDT <- DT[where, select|update|do, by][where, select|update|do, by][where, select|update|do, by]

Mid kasta oo ka mid ah xargaha labajibbaaran waxaad isticmaali kartaa natiijada hawlgalkii hore.

В pandas Hawlgallada noocaas ah waxaa lagu kala saaraa dhibic.

obj = df.fun1().fun2().fun3()

Kuwaas. miiskayaga ayaanu qaadanaa df oo isticmaal habkeeda fun1(), ka dibna waxaan ku dabaqnaa habka natiijada la helay fun2()kadib fun3(). Natiijada waxa lagu kaydiyaa shay walax .

Qaab-dhismeedka Xogta

Qaab dhismeedka xogta ee R iyo Python waa isku mid, laakiin waxay leeyihiin magacyo kala duwan.

Description
Magaca R
Magaca Python/pandas

Qaab dhismeedka miiska
xogta.frame, xogta.miiska, tibble
DataFrame

Liis hal-cabbir ah oo qiimayaal ah
Vector
Taxane pandas ah ama ku tax Python saafi ah

Qaab dhismeed aan tabul lahayn oo heerar badan ah
Liiska
Qaamuuska (dict)

Waxaan eegi doonaa qaar ka mid ah sifooyinka kale iyo kala duwanaanshaha syntax hoos.

Dhowr eray oo ku saabsan baakadaha aan isticmaali doono

Marka hore, waxaan kuu sheegi doonaa wax yar oo ku saabsan xirmooyinka aad baran doonto inta lagu jiro maqaalkan.

habaysan

Websiteka rasmiga ah: tidyverse.org
Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal
Maktabadda tidyverse waxaa qoray Hedley Wickham, Saynisyahanka Cilmi-baarista Sare ee Rstudio. tidyverse Waxay ka kooban tahay xirmo cajiib ah oo fududeeya habaynta xogta, 5 ka mid ah waxay ku jiraan 10ka ugu sarreeya ee la soo dejiyo ee kaydka CRAN.

Xuddunta maktabaddu waxay ka kooban tahay baakadaha soo socda: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. Mid kasta oo ka mid ah xirmooyinkan waxaa loogu talagalay in lagu xalliyo dhibaato gaar ah. Tusaale ahaan dplyr loo abuuray in xogta lagu dhaqo, tidyr in xogta loo keeno qaab nadiif ah, stringr wuxuu fududeeyaa ku shaqaynta xargaha, iyo ggplot2 waa mid ka mid ah aaladaha sawir-qaadista xogta ugu caansan.

faa'iido tidyverse waa fudaydka iyo si fudud in loo akhriyo syntax, kaas oo siyaabo badan ula mid ah luqadda weydiinta SQL.

miiska

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaalWebsiteka rasmiga ah: r-datatable.com

By data.table waa Matt Dole oo ka tirsan H2O.ai.

Siideynta ugu horeysay ee maktabadda waxay dhacday 2006.

Isku xirka xirmada uma fududa sida ku jirta tidyverse oo aad u xasuusanaysa xogta qadiimiga ah ee R, laakiin isla mar ahaantaana si weyn loo ballaariyay shaqeynta.

Dhammaan wax-is-daba-marinta shaxanka ku jira xirmadan waxaa lagu sifeeyay xajmiyo labajibbaaran, iyo haddii aad turjunto ereyga data.table SQL, waxaad helaysaa wax sidan oo kale ah: data.table[ WHERE, SELECT, GROUP BY ]

Awoodda xirmadani waa xawaaraha farsamaynta tiro badan oo xog ah.

pandas

Websiteka rasmiga ah: pandas.pydata.org Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Magaca maktabaddu waxa uu ka yimid ereyga dhaqaale ee "xogta guddiga", oo loo isticmaalo in lagu qeexo xogta habaysan ee dhinacyo badan leh.

By pandas waa American Wes McKinney.

Marka ay timaado falanqaynta xogta ee Python, siman pandas Maya Xirmo aad u kala duwan, oo heer sare ah oo kuu oggolaanaysa inaad ku samayso wax-is-daba-marin kasta oo xogta ah, laga bilaabo soo-qaadista xogta ilo kasta ilaa aad sawirto.

Ku rakibida baakado dheeraad ah

Xirmooyinka looga hadlay qodobkan kuma jiraan qaybinta aasaasiga ah ee R iyo Python. Inkasta oo ay jirto digniin yar, haddii aad ku rakibtay qaybinta Anaconda, ka dibna ku dheji wax dheeraad ah pandas looma baahna.

Ku rakibida baakadaha R

Haddii aad furtay deegaanka horumarinta RStudio ugu yaraan hal mar, waxaa laga yaabaa inaad hore u ogeyd sida loo rakibo xirmada loo baahan yahay ee R. Si aad u rakibto baakadaha, isticmaal amarka caadiga ah install.packages() adoo si toos ah ugu socodsiinaya R laftiisa.

# установка пакетов
install.packages("vroom")
install.packages("readr")
install.packages("dplyr")
install.packages("data.table")

Ka dib markii la rakibo, xirmooyinka waxay u baahan yihiin in lagu xiro, taas oo inta badan kiisaska amarka loo isticmaalo library().

# подключение или импорт пакетов в рабочее окружение
library(vroom)
library(readr)
library(dplyr)
library(data.table)

Ku rakibida Xirmooyinka Python

Markaa, haddii aad ku rakibtay Python saafi ah, markaa pandas waxaad u baahan tahay inaad gacanta ku rakibto. Fur khadka taliska, ama terminal, iyadoo ku xiran nidaamkaaga hawlgalka oo geli amarka soo socda.

pip install pandas

Kadibna waxaan ku laabaneynaa Python oo aan soo dejineynaa xirmada la rakibay oo leh amarka import.

import pandas as pd

Soodejinaya Xogta

Macdanta xogta waa mid ka mid ah tallaabooyinka ugu muhiimsan ee falanqaynta xogta. Python iyo R labadaba, haddii la rabo, waxay ku siinayaan fursado ballaaran oo aad ku heli karto xogta ilo kasta: faylalka maxalliga ah, faylasha internetka, mareegaha, dhammaan noocyada xogta.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Maqaalka oo dhan waxaan isticmaali doonaa dhowr xog-ururin:

  1. Laba ka soo degsasho Google Analytics
  2. Xogta Rakaabka Titanic.

Dhammaan xogta waxay ku taal aniga GitHub qaabka csv iyo tsv. Xaggee baan ka codsanaynaa?

Ku shubida xogta R: tidyverse, vroom, akhristaha

Si aad xogta ugu shubto maktabad tidyverse Waxaa jira laba xirmo: vroom, readr. vroom aad u casri ah, laakiin mustaqbalka baakadaha ayaa laga yaabaa in la isku daro.

Xigasho dukumeenti rasmi ah vroom.

vroom vs akhristaha
Waa maxay siidaynta vroom loola jeedo readr? Hadda waxaan qorsheyneynaa inaan u ogolaano labada xirmo inay si gooni ah u horumaraan, laakiin waxay u badan tahay inaan mideyn doono xirmooyinka mustaqbalka. Mid ka mid ah waxyeellada akhriska caajiska ah ee vroom waa dhibaatooyinka xogta qaarkood oo aan hore loo soo sheegi karin, markaa sida ugu wanaagsan ee loo mideeyo waxay u baahan tahay xoogaa fikir ah.

vroom vs akhriste
Maxay ka dhigan tahay siideyn? vroom si ay u readr? Waqtigan xaadirka ah waxaan qorsheyneynaa inaan si gaar ah u horumarino labada xirmo, laakiin waxay u badan tahay inaan isku dari doono mustaqbalka. Mid ka mid ah khasaarooyinka akhriska caajiska ah vroom waa in dhibaatooyinka xogta qaarkood aan horay loo sii sheegi karin, markaa waxaad u baahan tahay inaad ka fikirto sida ugu wanaagsan ee loo isku dari karo.

Maqaalkan waxaan ku eegi doonaa labada baakadood ee xogta lagu shubayo:

Ku rarida xogta R: xirmada 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")

Ku shubaya xogta R: akhristaha

# 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")

Xirmada vroom, iyadoon loo eegin qaabka xogta csv / tsv, soo dejinta waxaa lagu fuliyaa shaqada isla magaca. vroom(), baakadda ku jirta readr qaab kasta waxaan u isticmaalnaa shaqo ka duwan read_tsv() и read_csv().

Ku shubida xogta R: data.table

В data.table waxaa jira shaqo loogu talagalay soo dejinta xogta fread().

Ku rarida xogta R: data.table pack

# 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")

Ku rarida xogta Python: pandas

Haddii aan isbarbardhigno baakadaha R, markaa kiiskan syntax wuxuu ku dhow yahay pandas noqon doonaa readr, sababtoo ah pandas waxay ka codsan kartaa xogta meel kasta, waxaana jira qoys dhan oo hawlo ah oo ku jira xirmadan read_*().

  • read_csv()
  • read_excel()
  • read_sql()
  • read_json()
  • read_html()

Iyo hawlo kale oo badan oo loogu talagalay in lagu akhriyo xogta qaabab kala duwan. Laakiin ujeeddooyinkeena waa ku filan read_table() ama read_csv() iyadoo la adeegsanayo dood sep si loo qeexo kala soocida tiirka.

Ku rarida xogta Python: 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")

Abuuritaanka khadadka xogta

Miis Titanic, oo aanu rarnay, beer baa taal Sex, kaas oo kaydiya aqoonsiga jinsiga rakaabka.

Laakin si aad u soo bandhigto xogta ku haboon marka la eego jinsiga rakaabka, waa inaad isticmaashaa magaca halkii aad isticmaali lahayd lambarka jinsiga.

Si tan loo sameeyo, waxaan abuuri doonaa buug yar, miis ay jiri doonaan 2 tiir oo kaliya (koodka iyo magaca jinsiga) iyo 2 saf, siday u kala horreeyaan.

Abuuritaanka xogta qaabaynta gudaha R: tidyverse, dplyr

Tusaalaha koodhka hoose, waxaanu abuurnaa xogta la rabo iyadoo la adeegsanayo shaqada tibble() .

Abuuritaanka qaab xogeed gudaha R: dplyr

## dplyr
### создаём справочник
gender <- tibble(id = c(1, 2),
                 gender = c("female", "male"))

Abuuritaanka xogta qaabaynta gudaha R: data.table

Abuuritaanka xogta qaabaynta gudaha R: data.table

## data.table
### создаём справочник
gender <- data.table(id = c(1, 2),
                    gender = c("female", "male"))

Abuuritaanka xogta qaab-dhismeedka Python: pandas

В pandas Abuuritaanka xayndaabyada waxaa lagu fuliyaa dhowr marxaladood, marka hore waxaan abuurnaa qaamuus, ka dibna waxaan u beddelnaa qaamuuska xog-ururin.

Abuuritaanka xogta qaab-dhismeedka Python: pandas

# создаём дата фрейм
gender_dict = {'id': [1, 2],
               'gender': ["female", "male"]}
# преобразуем словарь в датафрейм
gender = pd.DataFrame.from_dict(gender_dict)

Xulashada Tiirarka

Jadwalka aad la shaqeyso waxa ay ka koobnaan karaan daraasiin ama xitaa boqolaal tiir oo xog ah. Laakiin si loo sameeyo falanqaynta, sida caadiga ah, uma baahnid dhammaan tiirarka laga heli karo miiska isha.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Sidaa darteed, mid ka mid ah hawlgallada ugu horreeya ee aad ku samayn doonto miiska isha waa inaad ka nadiifiso macluumaadka aan loo baahnayn oo aad xorayso xusuusta ay macluumaadkani ku jirto.

Xulashada tiirarka R: tidyverse, dplyr

Saan dplyr wuxuu aad ugu eg yahay luqadda weydiinta SQL, haddii aad taqaanid waxaad si dhaqso ah u baran doontaa xirmadan.

Si aad u doorato tiirarka, isticmaal shaqada select().

Hoos waxaa ku yaal tusaalooyin kood ah oo aad ku dooran karto tiirarka siyaabaha soo socda:

  • Liistada magacyada tiirarka loo baahan yahay
  • Tixraac magacyada tiirarka adoo isticmaalaya tibaaxo joogto ah
  • Nooca xogta ama hanti kasta oo kale oo xogta ku jirta tiirka

Doorashada tiirarka 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)

Doorashada tiirarka R: data.table

Isla hawlgallada gudaha data.table waxaa loo sameeyaa si ka duwan sidii hore, bilawga maqaalka waxaan bixiyay sharaxaad ku saabsan waxa doodaha ku jira gudaha xajinta labajibbaaran data.table.

DT[i,j,by]

Xagee:
i - halkee, i.e. shaandhaynta safafka
j - door|cusbooneysi| samee, i.e. xulashada tiirarka iyo beddelidda iyaga
by - xogta kooxaynta

Doorashada tiirarka 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$")]

Isbadal .SD Waxay kuu ogolaaneysaa inaad gasho dhammaan tiirarka, iyo .SDcols sifee tiirarka loo baahan yahay adigoo isticmaalaya tibaaxo joogto ah, ama hawlo kale si aad u shaandhayso magacyada tiirarka aad u baahan tahay.

Doorashada tiirarka Python, pandas

Si aad u doorato tiirarka magaca pandas waa ku filan tahay inaad bixiso liiska magacyadooda. Iyo si aad u doorato ama uga saarto tiirarka magaca adoo isticmaalaya tibaaxaha caadiga ah, waxaad u baahan tahay inaad isticmaasho hawlaha drop() и filter(), iyo dood dhidibka=1, taas oo aad ku muujinayso in ay lagama maarmaan tahay in la farsameeyo tiirarka halkii safafka.

Si aad u doorato goob nooca xogta ah, isticmaal shaqada select_dtypes(), iyo doodo waxaa ka mid ah ama ka baxsan gudbi liiska noocyada xogta ee u dhigma meelaha aad u baahan tahay inaad doorato.

Xulashada tiirarka Python: 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'])

Shaandhaynta safafka

Tusaale ahaan, miiska isha waxaa ku jiri kara dhowr sano oo xog ah, laakiin waxaad u baahan tahay oo kaliya inaad falanqeyso bisha ugu dambeysa. Mar labaad, khadadka dheeraadka ah ayaa hoos u dhigi doona habka xogta waxayna xirayaan xusuusta PC.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Shaandhaynta safafka R: tydyverse, dplyr

В dplyr shaqada waxaa loo isticmaalaa in lagu sifeeyo safafka filter(). Waxay u qaadanaysaa qaab-dhismeedka xogta sida doodda koowaad, ka dib waxaad taxdaa shuruudaha shaandhaynta.

Markaad qorayso tibaaxo macquul ah si aad u shaandhayso shax, kiiskan, sheeg magacyada tiirarka iyada oo aan la soo xigan oo adoon sheegin magaca miiska.

Markaad isticmaalayso tibaaxo badan oo macquul ah si aad u shaandhayso, isticmaal hawlwadeenada soo socda:

  • & ama comma - macquul ah IYO
  • | - macquul ah AMA

Shaandhaynta safafka R: dplyr

# фильтрация строк
## dplyr
### фильтрация строк по одному условию
filter(ga_nov, source == "google")
### фильтр по двум условиям соединённым логическим и
filter(ga_nov, source == "google" & sessions >= 10)
### фильтр по двум условиям соединённым логическим или
filter(ga_nov, source == "google" | sessions >= 10)

Shaandhaynta safafka R: data.table

Sida aan hore ugu qoray, in data.table syntax beddelashada xogta waxa ay ku lifaaqan tahay xidhmo labajibbaaran.

DT[i,j,by]

Xagee:
i - halkee, i.e. shaandhaynta safafka
j - door|cusbooneysi| samee, i.e. xulashada tiirarka iyo beddelidda iyaga
by - xogta kooxaynta

Doodda waxaa loo isticmaalaa in lagu shaandheeyo safafka i, kaas oo leh booska ugu horreeya ee xajinta labajibbaaran.

Tiirarka waxaa lagu helaa tibaaxo macquul ah oo aan lahayn calaamado xigasho oo aan la cayimin magaca miiska.

Tibaaxaha macquulka ah ayaa isku xidhan si la mid ah sida ku jirta dplyr iyada oo loo marayo & iyo | hawlwadeennada.

Shaandhaynta safafka R: data.table

## data.table
### фильтрация строк по одному условию
ga_nov[source == "google"]
### фильтр по двум условиям соединённым логическим и
ga_nov[source == "google" & sessions >= 10]
### фильтр по двум условиям соединённым логическим или
ga_nov[source == "google" | sessions >= 10]

Xadhkaha shaandhaynta ee Python: pandas

Ku kala shaandhee safafka gudaha pandas la mid ah shaandhaynta gudaha data.table, waxaana lagu sameeyaa xargaha labajibbaaran.

Xaaladdan oo kale, gelitaanka tiirarka waxaa loo fuliyaa daruuri iyadoo la tilmaamayo magaca database-ka; ka dibna magaca tiirka ayaa sidoo kale lagu tilmaami karaa calaamadaha xigashada ee geesaha labajibbaaran (Tusaale df['col_name']), ama aan lahayn xigashooyin ka dib muddada (Tusaale df.col_name).

Haddii aad u baahan tahay inaad ku shaandhayso qaab-dhismeed xogeed dhowr shuruudood, xaalad kasta waa in lagu dhejiyaa qaws. Xaaladaha macquulka ah ayaa midba midka kale ku xiran yahay hawlwadeenada & и |.

Xadhkaha shaandhaynta ee Python: 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)]

Kooxaynta iyo isu geynta xogta

Mid ka mid ah hawlgallada inta badan loo isticmaalo falanqaynta xogta waa kooxaynta iyo isku-darka.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Ereyga loogu talagalay fulinta hawlgalladan ayaa ku baahsan dhammaan baakadaha aan dib u eegeyno.

Xaaladdan oo kale, waxaan u qaadan doonaa xog-frame tusaale ahaan Titanic, oo xisaabi tirada iyo celceliska qiimaha tigidhada iyadoo ku xidhan fasalka qolka.

Kooxaynta iyo isu geynta xogta ee R: tidyverse, dplyr

В dplyr shaqada waxaa loo isticmaalaa kooxaynta group_by(), iyo isu geynta summarise(). Dhab ahaan, dplyr waxaa jira qoys dhan oo hawlo ah summarise_*(), laakiin ujeedada maqaalkani waa in la isbarbardhigo ereyga aasaasiga ah, markaa ma geli doono kaymahaas oo kale.

Hawlaha aasaasiga ah ee isu geynta:

  • sum() - soo koobid
  • min() / max() - ugu yar iyo qiimaha ugu badan
  • mean() - celcelis ahaan
  • median() - dhexdhexaad ah
  • length() - tirada

Kooxaynta iyo isu geynta ee R: dplyr

## dplyr
### группировка и агрегация строк
group_by(titanic, Pclass) %>%
  summarise(passangers = length(PassengerId),
            avg_price  = mean(Fare))

Si aad u shaqeyso group_by() Miiska ayaanu ka soo gudubnay dooddii kowaad Titanic, ka dibna tilmaamay garoonka Pclass, kaas oo aanu ku kooxaysan doono miiskayaga. Natiijada hawlgalkan oo la isticmaalayo hawlwadeenka %>% u gudbiyay sida doodda ugu horreysa ee shaqada summarise(), oo ku daray 2 beerood oo kale: rakaabka и celceliska_qiimaha. Marka ugu horeysa, adoo isticmaalaya shaqada length() xisaabiyay tirada tigidhada, iyo in labaad la isticmaalayo shaqada mean() helay celceliska qiimaha tigidhada.

Kooxaynta iyo isu geynta xogta ee R: data.table

В data.table doodda waxaa loo isticmaalaa isu-geynta j Kaas oo leh booska labaad ee xargaha labajibbaaran, iyo kooxaynta by ama keyby, kuwaas oo haysta booska saddexaad.

Liiska hawlaha isku-darka ee kiiskan ayaa la mid ah kan lagu tilmaamay dplyr, sababtoo ah kuwani waa hawlo laga soo qaatay ereyga aasaasiga ah ee R.

Kooxaynta iyo isu geynta ee R: data.table

## data.table
### фильтрация строк по одному условию
titanic[, .(passangers = length(PassengerId),
            avg_price  = mean(Fare)),
        by = Pclass]

Kooxaynta iyo isu geynta xogta Python: pandas

Kooxaynta pandas la mid ah dplyr, laakiin isku-darku maaha mid la mid ah dplyr haba yaraatee data.table.

Si loo kooxeeyo, isticmaal habka groupby(), kaas oo aad u baahan tahay inaad ku gudubto liiska tiirarka kaas oo xogta lagu ururin doono.

Isku darka waxaad isticmaali kartaa habka agg()kaas oo aqbala qaamuuska. Furayaasha qaamuuska ayaa ah tiirarka aad ku dabaqi doonto hawlaha isku-darka, qiimayduna waa magacyada hawlaha isku-darka.

Hawlaha isku-darka:

  • sum() - soo koobid
  • min() / max() - ugu yar iyo qiimaha ugu badan
  • mean() - celcelis ahaan
  • median() - dhexdhexaad ah
  • count() - tirada

function reset_index() Tusaalaha hoose waxaa loo isticmaalaa in dib loo dajiyo tusmooyinka buulka leh ee pandas dib u dhac ku yimaada isku geynta xogta ka dib.

Calaamadda kuu ogolaanaya in aad u guurto line soo socda.

Kooxaynta iyo isu geynta Python: pandas

# группировка и агрегация данных
titanic.groupby(["Pclass"]).
    agg({'PassengerId': 'count', 'Fare': 'mean'}).
        reset_index()

Isku xidhka miisaska tooska ah

Hawlgal aad ku biirto laba ama in ka badan oo miis oo isku qaab ah. Xogta aan ku shubnay waxay ka kooban tahay shax ga_nov и ga_dec. Jadwaladaani waa isku mid qaab dhismeedkooda, i.e. waxay leeyihiin tiirar isku mid ah, iyo noocyada xogta ee tiirarkan.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Kani waa la soo galiyay Google Analytics bilaha Noofambar iyo Disembar, qaybtan waxaan ku dari doonaa xogtan hal miis.

Si toos ah ugu biiritaanka miisaska R: tidyverse, dplyr

В dplyr Waxaad isku dari kartaa 2 miis mid ka mid ah adoo isticmaalaya shaqada bind_rows(), miisaska gudbinta sida dooddeeda.

Shaandhaynta safafka R: dplyr

# Вертикальное объединение таблиц
## dplyr
bind_rows(ga_nov, ga_dec)

Si toos ah ugu biirista miisaska R: data.table

Sidoo kale ma aha wax adag, aynu isticmaalno rbind().

Shaandhaynta safafka R: data.table

## data.table
rbind(ga_nov, ga_dec)

Si toos ah ugu biirista miisaska Python: pandas

В pandas shaqada waxaa loo isticmaalaa in lagu biiro miisaska concat(), kaas oo aad u baahan tahay inaad ku gudubto liiska fiimyada si aad isugu geyso.

Xadhkaha shaandhaynta ee Python: pandas

# вертикальное объединение таблиц
pd.concat([ga_nov, ga_dec])

Miisaska isku xidhka toosan

Hawlgalka tiirarka ka labaad lagu daro miiska kowaad furaha. Inta badan waxaa la adeegsadaa marka la tayeynayo miis xaqiiqo ah (tusaale, miis ay ku jiraan xogta iibka) oo wata xog tixraac (tusaale, qiimaha alaabta).

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Waxaa jira dhowr nooc oo ku biirista:

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Miiska hore loo raray Titanic waxaan leenahay tiir Sex, kaas oo u dhigma xeerka jinsiga rakaabka:

1 - dheddig
2 - lab

Sidoo kale, waxaanu samaynay miis - buug tixraac ah jinsiga. Si loo helo xog ku habboon oo ku saabsan jinsiga rakaabka, waxaan u baahanahay inaan ku darno magaca jinsiga tusaha jinsiga miiska u saaran Titanic.

Miiska tooska ah ku biir R: tidyverse, dplyr

В dplyr Waxa jira qoys dhan oo hawlo u leh ku biirinta jiifta:

  • inner_join()
  • left_join()
  • right_join()
  • full_join()
  • semi_join()
  • nest_join()
  • anti_join()

Waxa ugu badan ee la isticmaalo hab-dhaqankayga left_join().

Sida labada dood ee hore, hawlaha kor ku xusan waxay qaataan laba shax si ay ugu biiraan, iyo sida doodda saddexaad by waa inaad qeexdaa tiirarka aad ku biireyso.

Ku biir miiska toosan ee R: dplyr

# объединяем таблицы
left_join(titanic, gender,
          by = c("Sex" = "id"))

Isku xidhka jaantusyada ee R: data.table

В data.table Waxaad u baahan tahay inaad ku biirto miisaska furaha adoo isticmaalaya shaqada merge().

Doodaha la isku darayo () waxay ku shaqeeyaan xogta.table

  • x, y - Miisaska ku biirista
  • by - Tiirka kaas oo ah furaha lagu biiri karo haddii ay isku magac ku leeyihiin labada shax
  • by.x, by.y - Magacyada tiirarka la isku dari doono, haddii ay leeyihiin magacyo kala duwan
  • all, all.x, all.y - Nooca ku biirista, dhammaan waxay ka soo celin doonaan dhammaan safafka labada miis, all.x waxay u dhigantaa hawlgalka ku biirista BIDIX (waxay ka tagi doontaa dhammaan safafka miiska koowaad), all.y - waxay u dhigantaa Hawlgalka ku biir saxda ah (wuxuu ka tagi doonaa dhammaan safafka miiska labaad).

Isku xidhka jaantusyada ee R: data.table

# объединяем таблицы
merge(titanic, gender, by.x = "Sex", by.y = "id", all.x = T)

Miiska tooska ah ku biir Python: pandas

Sidoo kale in data.tablegudaha pandas shaqada waxaa loo isticmaalaa in lagu biiro miisaska merge().

Doodaha isku darka () waxay ka shaqeeyaan pandas

  • sida - Nooca isku xirka: bidix, midig, bannaanka, gudaha
  • on - Tiirka furaha ah haddii uu magac isku mid ah ku leeyahay labada shax
  • left_on, right_on - Magacyada tiirarka muhiimka ah, haddii ay magacyo kala duwan ku leeyihiin shaxanka

Miiska tooska ah ku biir Python: pandas

# объединяем по ключу
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")

Hawlaha aasaasiga ah ee daaqada iyo tiirarka la xisaabiyay

Hawlaha daaqaduhu waxay la mid yihiin macnaha hawlaha isku-darka, waxaana sidoo kale inta badan loo adeegsadaa falanqaynta xogta. Laakiin si ka duwan hawlaha isku-darka, hawlaha daaqadu ma beddelaan tirada saf ee xogta qaab-dhismeedka baxaya.

Luqadee ayaa lagu dooran karaa ka shaqeynta xogta - R ama Python? Labaduba! Ka haajiridda pandas una guurayso hab-nololeedka iyo xogta. miiska iyo gadaal

Asal ahaan, anagoo adeegsanayna shaqada daaqada, waxaan u kala qaybinay xogta soo socota qaybo iyadoo loo eegayo shuruudaha qaarkood, i.e. iyadoo la eegayo qiimaha beerta, ama dhowr beerood. Daaqadahastana waxaanu ku fulinaa hawlgallo xisaabeed. Natiijooyinka hawlgalladan waxaa lagu soo celin doonaa sadar kasta, i.e. iyada oo aan la beddelin tirada guud ee safafka miiska.

Tusaale ahaan, aan soo qaadano miiska Titanic. Waxaan xisaabin karnaa inta ay le'eg tahay qiimaha tigidh kasta wuxuu ku jiray fasalka qolkiisa.

Si tan loo sameeyo, waxaan u baahanahay inaan helno sadar kasta qiimaha guud ee tigidhka fasalka qolka hadda jira ee tigidhka khadkani ka tirsan yahay, ka dibna u qaybin qiimaha tigidh kasta wadarta qiimaha tigidhada isku fasalka ah. .

Daaqadaha R: tidyverse, dplyr

Si loogu daro tiirar cusub, iyada oo aan la isticmaalin kooxaynta safka, gudaha dplyr u adeegta shaqada mutate().

Waxaad ku xallin kartaa dhibaatada kor lagu sharraxay adiga oo xogta ku ururinaya goob ahaan Pclass oo ku soo koobaya goobta tiir cusub sameeyo. Marka xigta, kala saar miiska oo qaybi qiyamka goobta sameeyo wixii ku dhacay tallaabadii hore.

Shaqada daaqada ee R: dplyr

group_by(titanic, Pclass) %>%
  mutate(Pclass_cost = sum(Fare)) %>%
  ungroup() %>%
  mutate(ticket_fare_rate = Fare / Pclass_cost)

Shaqada daaqada ee R: data.table

Algorithm-ka xalku wuxuu ahaanayaa mid la mid ah sida ku jira dplyr, waxaan u baahanahay inaan miiska u kala saarno daaqadaha beerta Pclass. Ku soo saar tiir cusub tirada kooxda u dhiganta saf kasta, oo ku dar tiir aan ku xisaabineyno saamiga qiimaha tigidh kasta ee kooxdeeda.

Si loogu daro tiirar cusub data.table hawlwadeenka jooga :=. Hoos waxaa ku yaal tusaale xallinta dhibaatada iyadoo la adeegsanayo xirmada data.table

Shaqada daaqada ee R: data.table

titanic[,c("Pclass_cost","ticket_fare_rate") := .(sum(Fare), Fare / Pclass_cost), 
        by = Pclass]

Hawlaha daaqada ee Python: pandas

Hal dariiqo oo lagu daro tiir cusub pandas - isticmaal shaqada assign(). Si loo soo koobo qiimaha tigidhada fasalka qolka, iyada oo aan la kooxeynin saf, waxaan isticmaali doonaa shaqada transform().

Hoos waxaa ku yaal tusaale xal ah oo aan ku dari karno miiska Titanic isla 2 tiirar.

Hawlaha daaqada ee Python: pandas

titanic.assign(Pclass_cost      =  titanic.groupby('Pclass').Fare.transform(sum),
               ticket_fare_rate = lambda x: x['Fare'] / x['Pclass_cost'])

Shaxda warqadaha shaqada iyo hababka

Hoos waxaa ku yaal shax waraaqo ah oo u dhexeeya hababka loo sameeyo hawlgallo kala duwan oo xogta ku jirta xirmooyinka aan tixgelinnay.

Description
habaysan
miiska
pandas

Soodejinaya Xogta
vroom()/ readr::read_csv() / readr::read_tsv()
fread()
read_csv()

Abuuritaanka khadadka xogta
tibble()
data.table()
dict() + from_dict()

Xulashada Tiirarka
select()
dood j, booska labaad ee xajin labajibbaaran
Waxaan ku dhaafnay liiska tiirarka loo baahan yahay ee ku yaala geesaha labajibbaaran / drop() / filter() / select_dtypes()

Shaandhaynta safafka
filter()
dood i, booska kowaad ee xabagta labajibbaaran
Waxaan ku taxnaa shuruudaha shaandhaynta ee ku jira geesaha labajibbaaran / filter()

Kooxaynta iyo Isku-darka
group_by() + summarise()
doodaha j + by
groupby() + agg()

Midowga miiska toosan (UNION)
bind_rows()
rbind()
concat()

Isku xidhka miiska toosan (JOIN)
left_join() / *_join()
merge()
merge()

Hawlaha aasaasiga ah ee daaqada iyo ku darida tiirarka la xisaabiyay
group_by() + mutate()
dood j isticmaalaya hawlwadeenka := + dood by
transform() + assign()

gunaanad

Waxaa laga yaabaa in maqaalka aan ku qeexay ma aha fulinta ugu fiican ee xogta xogta, sidaas darteed waan ku farxi doonaa haddii aad saxdo khaladaadkeyga faallooyinka, ama si fudud u buuxi macluumaadka lagu bixiyay maqaalka farsamooyinka kale ee ku shaqeynaya xogta R / Python.

Sida aan kor ku soo qoray, ujeeddada maqaalku ma ahayn in qofku ra'yigiisa ku soo rogo luqadda ka wanaagsan, laakiin waa in la fududeeyo fursadda lagu baranayo labada luqadood, ama, haddii loo baahdo, u haajiraan dhexdooda.

Haddii aad ka heshay maqaalka, waan ku farxi doonaa in aan helo macaamiil cusub youtube и telegram kanaalada.

Poll

Xirmooyinka soo socda keebaa ku isticmaasha shaqadaada?

Faallooyinka waxaad ku qori kartaa sababta aad dooratay.

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Xirmada habaynta xogta ee aad isticmaashid (waxaad dooran kartaa dhawr doorasho)

  • 45,2%habsan19

  • 33,3%xogta. miiska14

  • 54,8%pandas23

42 isticmaale ayaa u codeeyay. 9 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment