Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Site n'ịchọ R ma ọ bụ Python na ịntanetị, ị ga-ahụ ọtụtụ nde akụkọ na mkparịta ụka kilomita na isiokwu nke nke ka mma, ngwa ngwa na adaba maka ịrụ ọrụ na data. Mana ọ dị nwute, akụkọ na esemokwu ndị a niile anaghị aba uru.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Ebumnuche nke isiokwu a bụ iji tụnyere usoro nhazi data bụ isi na ngwungwu kachasị ewu ewu nke asụsụ abụọ ahụ. Ma nyere ndị na-agụ akwụkwọ aka ka ha mara ihe ha na-amabeghị. Maka ndị na-ede na Python, chọpụta otu esi eme otu ihe ahụ na R, na ntụgharị.

N'oge isiokwu anyị ga-enyocha syntax nke ngwugwu kachasị ewu ewu na R. Ndị a bụ ngwugwu gụnyere n'ọbá akwụkwọ. tidyverseyana ngwugwu data.table. Ma tụnyere ha syntax na pandas, ngwugwu nyocha data kachasị ewu ewu na Python.

Anyị ga-aga nzọụkwụ site na usoro nyocha data niile site na itinye ya ruo na-arụ ọrụ windo nyocha site na iji Python na R.

Ihe

Enwere ike iji akụkọ a dị ka mpempe akwụkwọ aghụghọ ma ọ bụrụ na ị chefuola otu esi arụ ọrụ nhazi data na otu n'ime ngwugwu ndị a na-atụle.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

  1. Isi syntax dị iche n'etiti R na Python
    1.1. Ịnweta Ọrụ ngwugwu
    1.2. Ihe omume
    1.3. Indexing
    1.4. Ụzọ na OOP
    1.5. Pipeline
    1.6. Ọdịdị data
  2. Okwu ole na ole gbasara ngwugwu anyị ga-eji
    2.1. edozi isi
    2.2. data
    2.3. pandas
  3. Ịwụnye ngwugwu
  4. Na-ebu data
  5. Ịmepụta ebe nchekwa data
  6. Ịhọrọ ogidi ndị ị chọrọ
  7. Ahịrị nzacha
  8. Ịchịkọta na nchịkọta
  9. Njikọ kwụ ọtọ nke tebụl (UNION)
  10. Njikọ kwụ ọtọ nke tebụl (JOIN)
  11. Ọrụ mpio bụ isi na kọlụm gbakọọ
  12. Tebụl nkwekọrịta n'etiti ụzọ nhazi data na R na Python
  13. nkwubi
  14. Nnyocha dị mkpirikpi gbasara ngwugwu ị na-eji

Ọ bụrụ na ị nwere mmasị na nyocha data, ị nwere ike ịchọta nke m telegram и youtube ọwa. A na-arara ọtụtụ ọdịnaya maka asụsụ R.

Isi syntax dị iche n'etiti R na Python

Iji mee ka ọ dịrị gị mfe ịgbanwe site na Python gaa na R, ma ọ bụ ọzọ, m ga-enye isi ihe ole na ole ị kwesịrị ịṅa ntị na ya.

Ịnweta Ọrụ ngwugwu

Ozugbo etinyere ngwugwu n'ime R, ịkwesighi ịkọwa aha ngwugwu iji nweta ọrụ ya. N'ọtụtụ ọnọdụ nke a anaghị adịkarị na R, mana ọ na-anabata ya. Ịkwesighi ibubata ngwugwu ma ọ bụrụ na ịchọrọ otu n'ime ọrụ ya na koodu gị, mana naanị kpọọ ya site na ịkọwa aha ngwugwu na aha ọrụ ahụ. Ihe nkewa n'etiti ngwugwu na aha ọrụ dị na R bụ eriri okpukpu abụọ. package_name::function_name().

Na Python, n'ụzọ megidere nke ahụ, a na-ewere ya dị ka ihe ochie ịkpọ ọrụ nke ngwugwu site na ịkọwa aha ya nke ọma. Mgbe ebudatara ngwugwu, a na-enyekarị ya aha mkpirisi, dịka ọmụmaatụ. pandas na-ejikarị aha pseudonym pd. A na-enweta ọrụ ngwugwu site na ntụpọ package_name.function_name().

Ihe omume

Na R, ọ na-adịkarị iji akụ iji kenye uru n'ihe. obj_name <- value, ọ bụ ezie na a na-ahapụ otu akara nhata, otu akara nhata na R ka a na-eji isi na-agafe ụkpụrụ iji rụọ ọrụ arụmụka.

Na Python, a na-eme ọrụ naanị site na iji otu akara nhata obj_name = value.

Indexing

Enwekwara nnukwu ọdịiche dị n'ebe a. Na R, ntinye aha na-amalite n'otu ma tinye ihe niile akọwapụtara na nso nso a,

Na Python, indexing na-amalite site na efu na oke ahọpụtara anaghị agụnye ihe ikpeazụ akọwapụtara na ndeksi. Ya mere imewe x[i:j] na Python agaghị agụnye ihe j.

E nwekwara ndịiche na nrịbama na-adịghị mma, na R notation x[-1] ga-eweghachi ihe niile nke vector ma e wezụga nke ikpeazụ. Na Python, akara ngosi yiri nke ahụ ga-eweghachi naanị ihe ikpeazụ.

Ụzọ na OOP

R mejuputa OOP n'ụzọ nke ya, m dere banyere nke a n'isiokwu "OOP n'asụsụ R (akụkụ 1): Klas S3". N'ozuzu, R bụ asụsụ na-arụ ọrụ, na ihe niile dị na ya na-arụ ọrụ. Ya mere, dịka ọmụmaatụ, maka ndị ọrụ Excel, gaa na tydiverse ọ ga-adị mfe karịa pandas. Ọ bụ ezie na nke a nwere ike ịbụ echiche nke onwe m.

Na nkenke, ihe dị na R enweghị ụzọ (ọ bụrụ na anyị na-ekwu maka klas S3, mana enwere mmejuputa OOP ndị ọzọ nke na-adịkarị obere). Enwere naanị ọrụ a chịkọtara ọnụ na-ahazi ha n'ụzọ dị iche dabere na klas nke ihe ahụ.

Pipeline

Ikekwe nke a bụ aha maka pandas Ọ gaghị adịcha mma, mana m ga-agbalị ịkọwa ihe ọ pụtara.

Ka ị ghara ịchekwa ngụkọta nke etiti ma ghara ịmepụta ihe ndị na-adịghị mkpa na gburugburu ebe ọrụ, ị nwere ike iji ụdị pipeline. Ndị ahụ. nyefee nsonaazụ nke ngụkọta oge site n'otu ọrụ gaa na nke ọzọ, ma chekwaa nsonaazụ etiti.

Ka anyị were ihe atụ koodu na-esonụ, ebe anyị na-echekwa ngụkọta oge n'ihe dị iche iche:

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

Anyị rụrụ ọrụ 3 n'usoro, ma echekwara nsonaazụ nke ọ bụla n'ime ihe dị iche. Mana n'ezie, anyị achọghị ihe ndị a etiti.

Ma ọ bụ ọbụna njọ, mana ndị ọrụ Excel maara nke ọma.

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

N'okwu a, anyị echekwaghị nsonaazụ ngụkọ etiti, mana koodu ọgụgụ nwere ọrụ akwụghị ụgwọ adịghị mma.

Anyị ga-eleba anya n'ọtụtụ ụzọ maka nhazi data na R, ha na-arụkwa ọrụ yiri nke ahụ n'ụzọ dị iche iche.

Pipeline n'ọbá akwụkwọ tidyverse onye ọrụ mejuputara %>%.

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

Ya mere, anyị na-ewere nsonaazụ nke ọrụ ahụ func1() ma nyefee ya dị ka arụmụka mbụ na func2(), mgbe ahụ, anyị na-agafe nsonaazụ nke ngụkọta oge a dị ka arụmụka mbụ func3(). Na n'ikpeazụ, anyị na-ede ngụkọta niile e mere n'ime ihe obj <-.

E gosiputara ihe niile dị n'elu dị mma karịa okwu site na meme a:
Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

В data.table a na-eji agbụ ígwè eme ihe n'otu ụzọ ahụ.

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

Na nke ọ bụla n'ime brackets square ị nwere ike iji nsonaazụ nke ọrụ gara aga.

В pandas A na-ekewa ọrụ ndị dị otú ahụ site na ntụpọ.

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

Ndị ahụ. anyị na-ewere tebụl anyị df ma were usoro ya fun1(), mgbe ahụ, anyị na-etinye usoro ahụ na nsonaazụ enwetara fun2(), mgbe fun3(). A na-echekwa nsonaazụ nsonaazụ ya n'ime ihe ihe .

Ọdịdị data

Nhazi data na R na Python yitere, mana nwere aha dị iche iche.

Nkowasi
Aha na R
Aha na Python/pandas

Nhazi okpokoro
data.frame, data.table, tibble
DataFrame

Ndepụta ụkpụrụ nke otu akụkụ
Vector
Usoro na pandas ma ọ bụ depụta na Python dị ọcha

Multi-larịị na-abụghị tabular Ọdịdị
Ndepụta
Akwụkwọ ọkọwa okwu (dict)

Anyị ga-eleba anya n'ụfọdụ njirimara na ndịiche na syntax n'okpuru.

Okwu ole na ole gbasara ngwugwu anyị ga-eji

Nke mbụ, m ga-agwa gị ntakịrị banyere ngwugwu ndị ị ga-ama nke ọma n'oge isiokwu a.

edozi isi

Ebe nrụọrụ weebụ: tidyverse.org
Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ
ọbá akwụkwọ tidyverse nke Hedley Wickham dere, Sayensị Sayensị Senior Research na RStudio. tidyverse nwere nnukwu ngwugwu nke na-eme ka nhazi data dị mfe, 5 n'ime ha gụnyere na nbudata iri kacha elu site na ebe nchekwa CRAN.

Isi nke ọba akwụkwọ ahụ nwere ngwugwu ndị a: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. Nke ọ bụla n'ime ngwugwu ndị a bụ iji dozie otu nsogbu. Ọmụmaatụ dplyr emebere maka njikwa data, tidyr iji weta data ahụ n'ụdị dị ọcha, stringr na-eme ka ọ dị mfe ịrụ ọrụ na eriri, na ggplot2 bụ otu n'ime ngwaọrụ nhụta data kachasị ewu ewu.

Ihe bara uru tidyverse bụ mfe na mfe ịgụ syntax, nke dị n'ọtụtụ ụzọ dị ka asụsụ ajụjụ SQL.

data

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụEbe nrụọrụ weebụ: r-datatable.com

Site na data.table bụ Matt Dole nke H2O.ai.

Ntọhapụ mbụ nke ụlọ akwụkwọ ahụ mere na 2006.

Ngwungwu syntax adịghị mma ka ọ dị na tidyverse na ọ na-echetara dataframes kpochapụwo na R, mana n'otu oge ahụ gbasaara nke ukwuu na arụmọrụ.

A na-akọwa aghụghọ niile na tebụl dị na ngwugwu a na brackets square, ma ọ bụrụ na ịsụgharị syntax data.table na SQL, ị ga-enweta ihe dị ka nke a: data.table[ WHERE, SELECT, GROUP BY ]

Ike nke ngwugwu a bụ ọsọ nke nhazi data buru ibu.

pandas

Ebe nrụọrụ weebụ: pandas.pydata.org Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Aha ụlọ akwụkwọ ahụ sitere na okwu akụ na ụba "data panel", nke ejiri kọwaa ọtụtụ ozi ahaziri ahazi.

Site na pandas bụ American Wes McKinney.

A bịa na nyocha data na Python, nhata pandas Mba. Otu ngwungwu nwere ọtụtụ ọrụ, dị elu nke na-enye gị ohere iji data rụọ ọrụ ọ bụla, site na nbudata data site na isi iyi ọ bụla ruo n'ichepụta ya.

Ịwụnye ngwugwu ndị ọzọ

Agụnyeghị ngwugwu ndị a tụlere n'isiokwu a na nkesa R na Python. Ọ bụ ezie na enwere obere caveat, ọ bụrụ na ị wụnyela nkesa Anaconda, tinyezie ọzọ pandas adịghị achọrọ.

Ịwụnye ngwugwu na R

Ọ bụrụ na ị meghere gburugburu Rstudio mmepe opekata mpe otu ugboro, ikekwe ị maralarị otu esi etinye ngwugwu achọrọ na R. Iji wụnye ngwugwu, jiri iwu ọkọlọtọ. install.packages() site na-agba ọsọ ya ozugbo na R n'onwe ya.

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

Mgbe echichi gasịrị, a ga-ejikọta ngwugwu ndị ahụ, nke n'ọtụtụ ọnọdụ a na-eji iwu ahụ eme ihe library().

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

Ịwụnye ngwugwu na Python

Yabụ, ọ bụrụ na etinyere Python dị ọcha, yabụ pandas ịkwesịrị iji aka tinye ya. Mepee ahịrị iwu, ma ọ bụ ọnụ, dabere na sistemụ arụmọrụ gị wee tinye iwu a.

pip install pandas

Mgbe ahụ, anyị na-alaghachi na Python wee bubata ngwugwu arụnyere na iwu ahụ import.

import pandas as pd

Na-ebu data

Ngwuputa data bụ otu n'ime usoro kachasị mkpa na nyocha data. Ma Python na R, ọ bụrụ na achọrọ, na-enye gị ohere dị ukwuu iji nweta data sitere na isi mmalite ọ bụla: faịlụ mpaghara, faịlụ sitere na ịntanetị, weebụsaịtị, ụdị ọdụ data niile.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

N'ime akụkọ a, anyị ga-eji ọtụtụ datasets:

  1. Nbudata abụọ sitere na nchịkọta Google.
  2. Dataset nke njem njem Titanic.

Data niile dị na nke m GitHub n'ụdị csv na tsv faịlụ. Ebee ka anyị ga-esi rịọ ha?

Na-ebunye data na R: tidyverse, vroom, reader

Ka ibunye data n'ime ụlọ akwụkwọ tidyverse Enwere ngwugwu abụọ: vroom, readr. vroom ọzọ nke oge a, ma n'ọdịnihu nwere ike ijikọta ngwugwu.

Kwuo okwu sitere na akwụkwọ ikike vroom.

vroom vs onye na-agụ
Gịnị ka ntọhapụ nke vroom pụtara maka readr? Maka ugbu a, anyị na-eme atụmatụ ikwe ka ngwugwu abụọ ahụ gbanwee iche, mana o yikarịrị ka anyị ga-ejikọta ngwugwu ahụ n'ọdịnihu. Otu ọghọm dị na ịgụ ume umengwụ vroom bụ ụfọdụ nsogbu data enweghị ike ịkọ n'ihu, yabụ otu kachasị mma iji mee ka ha dị n'otu chọrọ echiche ụfọdụ.

vroom vs onye na-agụ
Gịnị ka ntọhapụ pụtara? vroom n'ihi na readr? N'oge a, anyị na-eme atụmatụ ịmepụta ngwugwu abụọ ahụ iche iche, mana anyị ga-ejikọta ha n'ọdịnihu. Otu n'ime adịghị ike nke ịgụ umengwụ vroom bụ na ụfọdụ nsogbu na data enweghị ike ịkọ tupu oge eruo, yabụ ịkwesịrị iche echiche banyere otu kacha mma iji jikọta ha.

N'isiokwu a, anyị ga-eleba anya na ngwugwu nbudata data abụọ a:

Na-ebu data na ngwungwu 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")

Na-ebu data na R: onye na-agụ

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

Na ngwugwu vroom, n'agbanyeghị ụdị data csv / tsv, a na-arụ ọrụ nke otu aha. vroom(), na ngwugwu readr anyị na-eji ọrụ dị iche iche maka usoro ọ bụla read_tsv() и read_csv().

Na-ebu data n'ime R: data.table

В data.table enwere ọrụ maka nbudata data fread().

Na-ebu data n'ime R: ngwugwu 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")

Na-ebu data na Python: pandas

Ọ bụrụ na anyị atụnyere ngwugwu R, mgbe ahụ na nke a, syntax kacha nso pandas ga- readr, n'ihi na pandas nwere ike ịrịọ data site na ebe ọ bụla, ma enwere ezinụlọ dum nke ọrụ na ngwugwu a read_*().

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

Na ọtụtụ ọrụ ndị ọzọ emebere iji gụọ data sitere na ụdị dị iche iche. Mana maka ebumnuche anyị ezuola read_table() ma ọ bụ read_csv() iji arụmụka Sep ezipụta onye nkesa kọlụm.

Na-ebu data na 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")

Ịmepụta ebe nchekwa data

Tebụl Titanic, nke anyị kwajuru, e nwere ubi Sex, nke na-echekwa ihe njirimara okike nke onye njem.

Mana maka ngosipụta data dabara adaba karịa gbasara okike ndị njem, ịkwesịrị iji aha ahụ karịa koodu okike.

Iji mee nke a, anyị ga-emepụta obere akwụkwọ ndekọ aha, tebụl nke a ga-enwe nanị 2 ogidi (koodu na aha okike) na ahịrị 2, n'otu n'otu.

Ịmepụta etiti data na R: tidyverse, dplyr

N'ihe atụ koodu dị n'okpuru, anyị na-emepụta dataframe chọrọ site na iji ọrụ ahụ tibble() .

Ịmepụta ebe nchekwa data na R: dplyr

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

Ịmepụta dataframe na R: data.table

Ịmepụta dataframe na R: data.table

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

Ịmepụta dataframe na Python: pandas

В pandas A na-eme imepụta okpokolo agba n'ọtụtụ usoro, nke mbụ anyị na-emepụta akwụkwọ ọkọwa okwu, wee gbanwee akwụkwọ ọkọwa okwu ka ọ bụrụ ebe nchekwa data.

Ịmepụta dataframe na Python: pandas

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

Ịhọrọ Ogidi

Tebụl ndị ị na-arụ ọrụ nwere ike ịnwe ọtụtụ narị kọlụm data. Ma iji mepụta nyocha, dịka iwu, ị chọghị ogidi niile dị na tebụl isi iyi.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Ya mere, otu n'ime ọrụ mbụ ị ga-arụ na tebụl isi iyi bụ ikpochapụ ya na ozi na-adịghị mkpa ma hapụ ebe nchekwa nke ozi a nwere.

Ịhọrọ ogidi na R: tidyverse, dplyr

syntax dplyr dị nnọọ ka asụsụ ajụjụ SQL, ọ bụrụ na ị maara ya nke ọma, ị ga-amụta ngwa ngwa a.

Ka ịhọrọ ogidi, jiri ọrụ ahụ select().

N'okpuru bụ ọmụmaatụ koodu nke ị nwere ike iji họrọ kọlụm n'ụzọ ndị a:

  • Na-edepụta aha kọlụm achọrọ
  • Tụtụ aka na aha kọlụm na-eji okwu oge niile
  • Site na ụdị data ma ọ bụ ihe ọ bụla ọzọ nke data dị na kọlụm

Ịhọrọ kọlụm na 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)

Ịhọrọ ogidi na R: data.table

Otu arụmọrụ na data.table na-rụrụ dịtụ iche, na mmalite nke isiokwu m nyere nkọwa nke ihe arụmụka dị n'ime square brackets na data.table.

DT[i,j,by]

Ebee:
i - ebe, i.e. nzacha site n'ahịrị
j - họrọ|melite|mee, i.e. na-ahọpụta ogidi na ịtụgharị ha
site - nchịkọta data

Ịhọrọ ogidi na 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$")]

Mgbanwe .SD na-enye gị ohere ịnweta ogidi niile, na .SDcols nyochaa ogidi ndị achọrọ site na iji okwu oge niile, ma ọ bụ ọrụ ndị ọzọ iji nzacha aha nke kọlụm ị chọrọ.

Ịhọrọ kọlụm na Python, pandas

Ka ịhọrọ ogidi n'aha n'ime pandas o zuru ezu inye ndepụta aha ha. Na ịhọrọ ma ọ bụ wepu ogidi n'aha site na iji okwu oge niile, ịkwesịrị iji ọrụ ndị ahụ drop() и filter(), na arụmụka axis=1, nke ị na-egosi na ọ dị mkpa iji hazie ogidi kama ahịrị.

Ka ịhọrọ mpaghara site na ụdị data, jiri ọrụ ahụ select_dtypes(), na n'ime arụmụka agụnye ma ọ bụ wepu Nyefee ndepụta nke ụdị data kwekọrọ na mpaghara nke ịchọrọ ịhọrọ.

Ịhọrọ kọlụm na 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'])

Ahịrị nzacha

Dịka ọmụmaatụ, tebụl isi iyi nwere ike ịnwe ọtụtụ afọ data, mana naanị ị ga-enyocha ọnwa gara aga. Ọzọ, ahịrị ndị ọzọ ga-ebelata usoro nhazi data wee mechie ebe nchekwa PC.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Ahịrị nzacha na R: tydyverse, dplyr

В dplyr A na-eji ọrụ ahụ enyocha ahịrị filter(). Ọ na-ewe nchekwa data dị ka arụmụka mbụ, wee depụta ọnọdụ nzacha.

Mgbe ị na-ede okwu ezi uche dị na ya iji nzacha tebụl, na nke a, kọwaa aha kọlụm na-enweghị nkwuputa ma na-ekwupụtaghị aha tebụl.

Mgbe ị na-eji ọtụtụ okwu ezi uche dị na nzacha, jiri ndị na-arụ ọrụ ndị a:

  • & ma ọ bụ rikoma - ezi uche AND
  • | - ezi uche ma ọ bụ

Ahịrị nzacha na R: dplyr

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

Ahịrị nzacha na R: data.table

Dịka m dere n'elu, na data.table A na-emechi syntax ntụgharị data na brackets square.

DT[i,j,by]

Ebee:
i - ebe, i.e. nzacha site n'ahịrị
j - họrọ|melite|mee, i.e. na-ahọpụta ogidi na ịtụgharị ha
site - nchịkọta data

A na-eji arụmụka ahụ wee nyochaa ahịrị i, nke nwere ọnọdụ mbụ na brackets square.

A na-enweta ogidi n'okwu ezi uche dị na ya na-enweghị akara ngụ na-akọwapụtaghị aha tebụl.

Okwu ezi uche na-ejikọta ibe ya n'otu ụzọ ahụ dị na dplyr site na & na | ndị ọrụ.

Ahịrị nzacha na R: data.table

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

Ụdọ nzacha na Python: pandas

Wepụta n'ahịrị dị na pandas yiri nzacha n'ime data.table, ma mee ya na brackets square.

N'okwu a, a na-eme ohere ịnweta ogidi site n'igosi aha nke dataframe; mgbe ahụ, a ga-egosipụtakwa aha kọlụm na akara okwu na brackets square (ihe atụ df['col_name']), ma ọ bụ na-enweghị nkọwa mgbe oge ahụ gasịrị (ihe atụ df.col_name).

Ọ bụrụ na ịchọrọ iji ọnọdụ dị iche iche yochaa dataframe, ọnọdụ ọ bụla ga-edoberịrị n'ime mmuke. A na-ejikọta ọnọdụ ezi uche na ibe ya site na ndị ọrụ & и |.

Ụdọ nzacha na 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)]

Ịchịkọta na nchịkọta data

Otu n'ime ọrụ ndị a na-ejikarị na nyocha data bụ nchịkọta na nchịkọta.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Okwu syntax maka ịrụ ọrụ ndị a gbasasịrị na ngwugwu niile anyị na-enyocha.

N'okwu a, anyị ga-ewere dataframe dịka ọmụmaatụ Titanic, ma gbakọọ ọnụ ọgụgụ na nkezi ọnụ ahịa tiketi dabere na klas ụlọ.

Ịchịkọta na nchịkọta data na R: tidyverse, dplyr

В dplyr a na-eji ọrụ ahụ maka ịchịkọta group_by(), na maka mkpokọta summarise(). N'ezie, dplyr e nwere ezinụlọ dum nke ọrụ summarise_*(), ma ebumnuche nke isiokwu a bụ iji tụnyere isi okwu syntax, n'ihi ya, anyị agaghị abanye n'ime ọhịa dị otú ahụ.

Ọrụ nchịkọta isi:

  • sum() - nchịkọta
  • min() / max() – kacha nta na kacha uru
  • mean() - nkezi
  • median() - etiti
  • length() - oke

Nchịkọta na nchịkọta na R: dplyr

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

Iji rụọ ọrụ group_by() anyị gafere tebụl dị ka arụmụka mbụ Titanic, wee gosi ubi ahụ Pclass, nke anyị ga-esi na-ejikọta tebụl anyị. Nsonaazụ nke ọrụ a na-eji onye ọrụ %>% gafere dị ka arụmụka mbụ na ọrụ ahụ summarise(), wee gbakwunye mpaghara abụọ ọzọ: ndị njem и ọnụahịa_ọnụ. Na mbụ, na-eji ọrụ length() gbakọọ ọnụ ọgụgụ nke tiketi, na nke abụọ na-eji ọrụ ahụ mean() natara nkezi ọnụahịa tiketi.

Ịchịkọta na nchịkọta data na R: data.table

В data.table a na-eji arụmụka ahụ eme ihe maka nchịkọta j nke nwere ọnọdụ nke abụọ na brackets square, na maka nchịkọta by ma ọ bụ keyby, nke nwere ọnọdụ nke atọ.

Ndepụta nke ọrụ nchịkọta na nke a yiri nke akọwara na ya dplyr, n'ihi na Ndị a bụ ọrụ sitere na nkiti R syntax.

Ịchịkọta na nchịkọta na R: data.table

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

Ịchịkọta na nchịkọta data na Python: pandas

Ịkpọkọta na pandas yiri dplyr, ma nchịkọta adịghị ka dplyr ọ bụghị na data.table.

Iji otu, jiri usoro a groupby(), nke ị ga-ebufe ndepụta kọlụm nke a ga-eji chịkọta dataframe.

Maka nchịkọta ị nwere ike iji usoro ahụ agg()nke na-anabata akwụkwọ ọkọwa okwu. Igodo akwụkwọ ọkọwa okwu bụ kọlụm nke ị ga-etinye ọrụ nchịkọta, na ụkpụrụ bụ aha ọrụ nchịkọta.

Ọrụ nchịkọta:

  • sum() - nchịkọta
  • min() / max() – kacha nta na kacha uru
  • mean() - nkezi
  • median() - etiti
  • count() - oke

ọrụ reset_index() na ihe atụ n'okpuru a na-eji tọgharịa akwu index na pandas ndabara na mgbe nchịkọta data.

Ihe ngosi na-enye gị ohere ịkwaga n'ahịrị ọzọ.

Ịchịkọta na nchịkọta na Python: pandas

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

Ngwakọta tebụl kwụ ọtọ

Ọrụ nke ị jikọtara tebụl abụọ ma ọ bụ karịa nke otu nhazi. Ihe data anyị bugoro nwere tebụl ga_nov и ga_dec. Tebụl ndị a bụ otu ihe n'usoro, ya bụ. nwere otu ogidi, na ụdị data dị na kọlụm ndị a.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Nke a bụ nbudata sitere na Google Analytics maka ọnwa Nọvemba na Disemba, na ngalaba a, anyị ga-ejikọta data a n'otu tebụl.

Ijikọ tebụl kwụ ọtọ na R: tidyverse, dplyr

В dplyr Ị nwere ike ijikọta tebụl 2 n'ime otu iji ọrụ ahụ bind_rows(), na-agafe tebụl dị ka arụmụka ya.

Ahịrị nzacha na R: dplyr

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

Ijikọ tebụl kwụ ọtọ na R: data.table

Ọ bụghịkwa ihe mgbagwoju anya, ka anyị jiri rbind().

Ahịrị nzacha na R: data.table

## data.table
rbind(ga_nov, ga_dec)

Ijikọ kwụ ọtọ na tebụl na Python: pandas

В pandas A na-eji ọrụ ahụ jikọọ na tebụl concat(), nke ị ga-ebufe ndepụta okpokolo agba iji jikọta ha.

Ụdọ nzacha na Python: pandas

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

Njikọ kwụ ọtọ nke tebụl

Ọrụ nke etinyere ogidi sitere na nke abụọ na tebụl nke mbụ site na igodo. A na-ejikarị ya eme ihe mgbe ị na-eme ka tebụl eziokwu dịkwuo mma (dịka ọmụmaatụ, tebụl nwere data ahịa) na ụfọdụ data ntụaka (dịka ọmụmaatụ, ọnụ ahịa ngwaahịa).

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Enwere ọtụtụ ụdị njikọ:

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

Na tebụl ebugoro na mbụ Titanic anyị nwere kọlụm Sex, nke dabara na koodu okike nke onye njem:

1 - nwanyị
2 - nwoke

Ọzọkwa, anyị ekepụtala tebụl - akwụkwọ ntụaka okike. Maka nkọwa dị mma nke data gbasara okike nke ndị njem, anyị kwesịrị ịgbakwunye aha okike site na ndekọ. okike na tebụl Titanic.

Tebụl kwụ ọtọ sonyere na R: tidyverse, dplyr

В dplyr Enwere ezinụlọ dum nke ọrụ maka ijikọ kwụ ọtọ:

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

Nke a na-ejikarị eme ihe n'omume m bụ left_join().

Dị ka arụmụka abụọ mbụ, ọrụ ndị edepụtara n'elu na-ewere tebụl abụọ iji sonyere, yana dịka arụmụka nke atọ by ị ga-ezipụta kọlụm iji sonyere.

Tebụl kwụ n'ahịrị sonyere na R: dplyr

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

Njikọ kwụ ọtọ nke tebụl na R: data.table

В data.table Ịkwesịrị iji ọrụ ahụ jikọọ na tebụl site na igodo merge().

Arụmọrụ ijikọ () arụ ọrụ na data.table

  • x, y - Tebụl maka ịbanye
  • site - Kọlụm nke bụ igodo iji sonyere ma ọ bụrụ na ọ nwere otu aha na tebụl abụọ ahụ
  • by.x, by.y - A ga-ejikọta aha kọlụm, ma ọ bụrụ na ha nwere aha dị iche iche na tebụl
  • niile, all.x, all.y - Jikọọ ụdị, niile ga-eweghachi niile ahịrị site na tebụl abụọ, all.x kwekọrọ na ọrụ njikọ aka ekpe (ga-ahapụ ahịrị niile nke tebụl mbụ), all.y - kwekọrọ na Ọrụ Jikọọ aka nri (ga-ahapụ ahịrị niile nke tebụl nke abụọ).

Njikọ kwụ ọtọ nke tebụl na R: data.table

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

Tebụl kwụ ọtọ sonyere na Python: pandas

Dịkwa ka in data.table, na pandas A na-eji ọrụ ahụ jikọọ na tebụl merge().

Arụmụka nke njikọ () na-arụ ọrụ na pandas

  • otú — Ụdị njikọ: aka ekpe, aka nri, mpụta, n'ime
  • na - Kọlụm nke bụ igodo ma ọ bụrụ na ọ nwere otu aha na tebụl abụọ ahụ
  • left_on, right_on - Aha ogidi isi, ma ọ bụrụ na ha nwere aha dị iche iche na tebụl

Tebụl kwụ ọtọ sonyere na Python: pandas

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

Ọrụ mpio bụ isi na kọlụm gbakọọ

Ọrụ mpio yiri nke a pụtara na ọrụ nchịkọta, ma na-ejikarị nyocha data. Mana n'adịghị ka ọrụ nchịkọta, ọrụ windo anaghị agbanwe ọnụọgụ ahịrị nke dataframe na-apụ apụ.

Kedu asụsụ ị ga-ahọrọ maka iji data rụọ ọrụ - R ma ọ bụ Python? Ha abụọ! Ịkwaga na pandas gaa na nhazi na data.table na azụ

N'ikpeazụ, n'iji ọrụ windo, anyị na-ekewa dataframe na-abata n'ime akụkụ dịka ụfọdụ criterion si dị, ya bụ. site na uru nke ubi, ma ọ bụ ọtụtụ ubi. Anyị na-arụkwa ọrụ mgbakọ na mwepụ na windo ọ bụla. A ga-eweghachi nsonaazụ nke ọrụ ndị a n'ahịrị ọ bụla, ya bụ. na-enweghị ịgbanwe ọnụ ọgụgụ nke ahịrị na tebụl.

Dịka ọmụmaatụ, ka anyị were tebụl Titanic. Anyị nwere ike gbakọọ pasent ole ụgwọ tiketi ọ bụla dị n'ime klaasị ụlọ ya.

Iji mee nke a, anyị kwesịrị ịnweta n'ahịrị nke ọ bụla ọnụ ahịa tiketi maka klaasị ụlọ dị ugbu a nke tiketi dị n'ahịrị a bụ, wee kesaa ọnụ ahịa nke tiketi ọ bụla site na ngụkọta ọnụ ahịa nke tiketi niile nke otu ụlọ. .

Ohere na-arụ ọrụ na R: tidyverse, dplyr

Ka ịgbakwunye kọlụm ọhụrụ, na-ejighị nchikota ahịrị, n'ime dplyr na-eje ozi ọrụ mutate().

Ị nwere ike dozie nsogbu ahụ akọwara n'elu site na ijikọ data n'ọhịa Pclass na ikpokọta ubi na kọlụm ọhụrụ Ọ bụ. Na-esote, kewaa tebụl ma kesaa ụkpụrụ ubi Ọ bụ na ihe mere na nzọụkwụ gara aga.

Ọrụ mpio na R: dplyr

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

Ọrụ mpio na R: data.table

Ihe ngwọta algọridim na-anọgide na otu dị ka na dplyr, anyị kwesịrị kewaa tebụl n'ime windo site n'ọhịa Pclass. Wepụta na kọlụm ọhụrụ ego maka otu kwekọrọ na ahịrị ọ bụla, ma tinye kọlụm nke anyị gbakọọ òkè nke ọnụ ahịa tiketi ọ bụla n'ime otu ya.

Ka ịgbakwunye ogidi ọhụrụ na data.table onye ọrụ nọ :=. N'okpuru ebe a bụ ọmụmaatụ nke idozi nsogbu site na iji ngwugwu data.table

Ọrụ mpio na R: data.table

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

Ọrụ windo na Python: pandas

Otu ụzọ isi tinye kọlụm ọhụrụ na pandas - jiri ọrụ ahụ assign(). Iji chịkọta ọnụ ahịa tiketi site na klas ụlọ, na-enweghị nchịkọta ahịrị, anyị ga-eji ọrụ ahụ transform().

N'okpuru ebe a bụ ihe atụ nke ngwọta nke anyị na-agbakwunye na tebụl Titanic otu ogidi 2 ahụ.

Ọrụ windo na Python: pandas

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

Ọrụ na usoro akwụkwọ ozi table

N'okpuru ebe a bụ tebụl ozi n'etiti ụzọ maka ịrụ ọrụ dị iche iche na data na ngwugwu anyị tụlere.

Nkowasi
edozi isi
data
pandas

Na-ebu data
vroom()/ readr::read_csv() / readr::read_tsv()
fread()
read_csv()

Ịmepụta ebe nchekwa data
tibble()
data.table()
dict() + from_dict()

Ịhọrọ Ogidi
select()
arụmụka j, nke abụọ ọnọdụ na square brackets
anyị na-agafe ndepụta ogidi achọrọ na brackets square / drop() / filter() / select_dtypes()

Ahịrị nzacha
filter()
arụmụka i, mbụ ọnọdụ na square brackets
Anyị na-edepụta ọnọdụ nzacha na square brackets / filter()

Ịchịkọta na nchịkọta
group_by() + summarise()
arụmụka j + by
groupby() + agg()

Njikọ kwụ ọtọ nke tebụl (UNION)
bind_rows()
rbind()
concat()

Njikọ kwụ ọtọ nke tebụl (JOIN)
left_join() / *_join()
merge()
merge()

Ọrụ mpio bụ isi na ịgbakwunye kọlụm gbakọọ
group_by() + mutate()
arụmụka j iji onye ọrụ := + arụmụka by
transform() + assign()

nkwubi

Ikekwe na isiokwu m kọwara na ọ bụghị ndị kasị mma mmejuputa atumatu nke data nhazi, otú m ga-enwe obi ụtọ ma ọ bụrụ na ị na-edozi m ihie ụzọ na-ekwu, ma ọ bụ nanị gbakwunye ozi e nyere n'isiokwu na ndị ọzọ usoro maka-arụ ọrụ na data na R / Python.

Dịka m dere n'elu, ebumnuche nke isiokwu ahụ abụghị ịmanye echiche mmadụ na asụsụ ka mma, kama iji mee ka ohere ịmụ asụsụ abụọ ahụ dị mfe, ma ọ bụ, ọ bụrụ na ọ dị mkpa, ịkwaga n'etiti ha.

Ọ bụrụ na ị masịrị akụkọ ahụ, m ga-enwe obi ụtọ inwe ndị debanyere aha ọhụrụ m youtube и telegram ọwa.

Mpempe akwụkwọ

Kedu n'ime ngwugwu ndị a ị na-eji na ọrụ gị?

Na nkwupụta ị nwere ike dee ihe kpatara nhọrọ gị.

Naanị ndị ọrụ edebanyere aha nwere ike isonye na nyocha a. banye, Biko.

Kedu ngwungwu nhazi data ị na-eji (ị nwere ike họrọ ọtụtụ nhọrọ)

  • 45,2%ịdị ọcha19

  • 33,3%data.table14

  • 54,8%pandas23

Ndị ọrụ 42 họpụtara. Ndị ọrụ 9 anabataghị.

isi: www.habr.com

Tinye a comment