Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Per R vel Pythonem in Interrete quaerendo, decies centena milia articulorum et chiliometrorum disputationum invenies in argumento quorum unus est melior, celerior et commodior ad operandum cum notitia. Sed proh dolor, hae omnes articuli et controversiae non sunt maxime utiles.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Propositum huius articuli comparare technicas fundamentales notas processus in popularibus utriusque linguae fasciculis. Et lectores adiuva cito dominum aliquid quod nondum sciunt. Nam qui Pythone scribunt, idem in R et vice versa experiuntur facere.

Per articulum resolvemus syntaxin fasciculorum popularium in R. Hae sunt fasciculi in bibliotheca comprehensi. tidyverseet sarcina data.table. Et confer eorum syntaxin cum pandasmaxime popularis analyseos fasciculi in Pythone.

Gradatim per totam Analysis semitam ibimus, eam onerantes ad functiones fenestras analyticas faciendo Pythone et R utentes.

contentus

Articulus hic adhiberi potest ut linteum seductorem si oblitus es quomodo aliquam operationem processus notitiae exercendae in una e fasciculis de quibus agitur.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

  1. Syntaxis principalis differentiarum inter R et Pythonem
    1.1. Accessing Package functiones
    1.2. adsignatio
    1.3. Indexing
    1.4. Modos et OOP
    1.5. Pipelines
    1.6. Data structurae
  2. Paucis verbis de packages utemur
    2.1. tidyverse
    2.2. data.table
    2.3. pandas
  3. Installing packages
  4. Data loading
  5. partum dataframes
  6. Discriptis columnis opus
  7. ordines eliquare
  8. Coetus et aggregatio
  9. Unio tabularum verticalium (CONGREGATIO)
  10. Junctura tabularum horizontalium (CONIUNCTIO)
  11. Munera fundamentalia fenestrae et calculata columnarum
  12. Correspondentia mensa inter notitias processus methodos in R et Python
  13. conclusio,
  14. Brevis circumspectis de qua sarcina uteris

Si interesse in Analysis analysi, invenire potes meum telegraphum и YouTube rivos. Pleraque contenti r lingua dedicata est.

Syntaxis principalis differentiarum inter R et Pythonem

Quo facilius a Pythone ad R transias, vel contra, pauca dabo praecipua quae debes observare.

Accessing Package functiones

Sarcina semel in R oneratur, nomen sarcinae denotare non debes ad munera accedere. In pluribus hoc non est commune in R, sed placet. Omnino sarcinam importare non debes si aliqua functionum eius in codice tuo desideras, sed simpliciter nominando nomen sarcinae et nomen muneris. Separator inter sarcina et functiones nominum in R duplici colonia est. package_name::function_name().

Apud Pythonem, e contra, classicum censetur functiones sarcinae appellare, nomine expresse denotando. Cum involucrum deponitur, nomen abbreviatum dari solet, e.g. pandas plerumque pseudonym adhibetur pd. A sarcina munus accessed per punctum package_name.function_name().

adsignatio

In R, sagitta communis est uti objecto valorem assignare. obj_name <- valuelicet unum signum aequale admittatur, unum signum in R aequale principaliter adhibetur ut valores ad rationes exercendas.

In Pythone, assignatio fit solum cum uno signo aequalium obj_name = value.

Indexing

Sunt etiam hic satis significantes differentiae. In R, index incipit unum et omnia elementa determinata in range indefinita comprehendit;

In Pythone, index incipit a nulla et rhoncus lectus non includit elementum ultimum in indicem determinatum. Ita design x[i:j] in Pythone j elementum non includit.

Sunt etiam differentiae in indice negativo, in R notatione x[-1] omnia vectoris elementa redibunt excepta ultima. Similis notatio in Pythone ultimum elementum solum reddet.

Modos et OOP

R instrumenti suo modo OOP, de hoc scripsi in art "OOP in the R language (part 1): S3 classes". In genere, R lingua functionis est, et omnia in ea de officiis aedificantur. Ergo, exempli gratia, pro Praecedo users, vade ad tydiverse facilius erit, quam pandas. Quamvis haec sit mea subiectiva sententia.

In summa, obiecta in R methodos non habent (si de S3 generibus loquamur, sed aliae sunt exsecutiones OOP multo minus communes). Solae sunt functiones generales quae eas aliter secundum genus obiecti processum habent.

Pipelines

Fortasse hoc nomen est pandas Non recte omnino, sed sensum explicare experiar.

Ut calculos intermedios non serves nec superfluas res in ambitu laborantes efficias, quadam pipelino uti potes. Illae. calculi proventum ab uno munere ad proximum, nec intermedios salvabis.

Exemplum ex hoc codice sumamus, ubi intermedias calculos in objectis separatis condimus;

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

Operationes successiue agimus, et effectus utriusque servatus est in obiecto separato. Sed his mediis non indigemus.

Aut etiam deterius, sed familiarius ut Excel utentes.

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

In hoc casu, intermedia calculi eventus non servavimus, sed lectio codicis cum functionibus nested perquam incommodum est.

Plures aditus notitiarum in R videbimus, et similes operationes diversimode agunt.

Pipelines in bibliotheca tidyverse implemented per operator %>%.

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

Et sic accipitur effectus operis func1() et consequentes ad primum argumentum func2()ex hoc calculi ratione praetermittendum est func3(). Et in fine omnes calculos scribimus in obiecto obj <-.

Omnia superiora hoc quentiam verbis melius illustrant;
Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

В data.table in catenis similiter.

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

In singulis uncis quadratis ex operatione prioris uti potes.

В pandas tales operationes distinguuntur per punctum.

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

Illae. nos accipere mensam nostram df ac uti modum eius fun1()ergo applicamus modum ad exitum consecuti fun2()post fun3(). Consequens effectus salvatur in obiecto secundum quid .

Data structurae

Indicae structurae in R et Pythone similes sunt, sed nominibus differentibus.

Description
Nomen in R
Nomen in Pythone/pandas

Table structure
data.frame, data.table, tibble
DataFrame

Una dimensiva indicem valorum
Vector
Series in pandas vel album in puro Pythone

Multi-gradu structurae non-Tabularis
List
Dictionary

Alias ​​notas et differentias in syntaxi infra videbimus.

Paucis verbis de packages utemur

Primum, pauca tibi de fasciculis narrabo quas in hoc articulo familiares fies.

tidyverse

Rutrum: tidyverse.org
Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro
library tidyverse scripsit Hedley Wickham, Senior Research Scientiarum in RStudio. tidyverse constat ex infigo copia fasciculorum quae simpliciorem reddunt processus, 5 quarum in summitate 10 downloads e CRAN repositorio comprehenduntur.

nucleus bibliothecae in fasciculis sequentibus consistit: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. Singulae ex his fasciculis ad certum problema solvendum destinantur. Exempli gratia dplyr data manipulation creatum est; tidyr perducere ad elegantiam datam formam; stringr simplificat opus cum chordis et ggplot2 est una ex popularibus instrumentis visualizationis data.

utilitatem tidyverse est simplicitas et facilis syntaxis lectionis, quae in multis verbis interrogationi SQL similis est.

data.table

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retroRutrum: r-datatable.com

By data.table Est Matt Dole H2O.ai.

Prima emissio bibliothecae anno 2006 facta est.

In sarcina syntaxin non tam opportuna quam in tidyverse et magis simile est notitiarum classicarum in R, sed simul signanter in officiando.

Omnes manipulationes cum tabella in hac sarcina descriptae sunt uncis quadratis et si syntaxin interpretaris data.table in SQL habes aliquid simile hoc: data.table[ WHERE, SELECT, GROUP BY ]

Fortitudo huius sarcinae est celeritas in magna copia notitiarum expediendi.

pandas

Rutrum: pandas.pydata.org Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Nomen bibliothecae ex termino oeconomico "datae tabulae" venit, cuius notitias multidimensiones structuras describebat.

By pandas est American Wes McKinney.

Cum in Pythone Analysis fit, aequalis pandas Nec. Involucrum admodum multifunctionale, summus gradus sarcina, quae manipulationem cum notitia aliqua praestare permittit, a notitia onerum quavis fontibus ad illud visualisandum.

Installing additional packages

Fasciculi in hoc articulo discussi in distributionibus fundamentalibus R et Pythonis non comprehenduntur. Quamvis parva cautione sit, si Anaconda distributionem instituisti, deinde insuper institue pandas non requisitus.

Installing packages in R *

Si RStudio evolutionis semel saltem aperuisti, probabiliter iam scis quomodo sarcinam debitam in R. installare fasciculis installare, vexillum utere imperium. install.packages() directe in ipsum R. discurrendo.

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

Post institutionem, fasciculi coniungi necesse est, pro quibus plerumque imperium adhibetur library().

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

Installing packages in Python

Ergo, si purum tibi Python inauguratum est, tunc pandas manually installare debes. Aperi lineam iubes, seu terminales, secundum operativam rationem tuam, et hoc mandatum ingredere.

pip install pandas

Inde ad Pythonem revertamur et sarcinam inauguratam cum imperio importemus import.

import pandas as pd

Data loading

Data fodienda est unus ex maximis gradibus in analysi notati. Ambo Python et R, si placet, magnas opportunitates praebent ut notitias quibusvis fontibus obtineant: lima localia, lima ex interreti, websites, omnis generis database.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Per articulum pluribus datasets utemur:

  1. Duo downloads ex Google Analyticis.
  2. Titan VIATOR Dataset.

Omnia data in mea GitHub in forma csv et tsv imagini. Ubi petemus eos?

Loading data in R: tidyverse, vroom, readr

Ut load notitia in bibliotheca tidyverse Sunt duo fasciculi: vroom, readr. vroom recentiores, sed in futurum fasciculi componi possunt.

Quote ex officialis documenta vroom.

vroom nobis lectorem
Quid emissio vroom medium for readr? Nunc enim disponimus duas sarcinas separatim evolvere, sed verisimile est in futuro fasciculos coniungere. Unum incommodum vroom inertis lectionis certae quaestiones datae ante enunciari non possunt, quomodo optimae ad unitatem earum cogitationem aliquam requirunt.

vroom nobis readr
Quid medium dimittis? vroom ad readr? In momento utramque sarcinas separatim evolvere cogitamus, sed eas in futurum verisimiliter componemus. Una incommoda iners lectio vroom problemata quaedam cum notitia praemissae nuntiari non possunt, ideo debes cogitare quomodo melius eas componas.

In hoc articulo singulas notitias fasciculorum loading videbimus:

Loading data in R: vroom sarcina

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

Loading data in R: readr

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

In sarcina vroomcuiuscumque csv/tsv data forma, oneratio exercetur munere eiusdem nominis vroom()In sarcina readr utimur enim diversa cuiusque forma read_tsv() и read_csv().

Loading data in R: data.table

В data.table est munus loading notitia fread().

Loading data in R: data.table sarcina

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

Loading data in Python: pandas

Si cum R fasciculis comparentur, tunc syntaxis in hoc casu proxima est pandas erit readr, quod pandas alicunde notitias petere potest, et tota familia functionum in hac sarcina est read_*().

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

Multaque alia munera data ex variis formatis legendis destinata sunt. Sed ad propositum nostrum satis est read_table() aut read_csv() per argumentum Sep ut specificare separator columnae.

Loading data in 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")

partum dataframes

Mensa titanicquem oneratum, ager ; Sexquae reponit genus vectoris identifier.

Sed ad commodiorem propositionem datarum secundum genus transeuntium, nomine potius quam genere codicis utere debes.

Ad hoc faciendum directorium parvum creabimus, mensam in qua tantum 2 columnae erunt (codice et nomen genus) et 2 ordines respective.

Creando dataframe in R: tidyverse, dplyr

In codice infra exemplum, dataframe desiderata functione utentes creamus tibble() .

Creando dataframe in R: dplyr

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

Creando dataframe in R: data.table

Creando dataframe in R: data.table

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

Creando dataframe in Pythone: pandas

В pandas Creatio tabularum pluribus gradibus exercetur, primum dictionarium creamus, deinde dictionarium in dataframe convertimus.

Creando dataframe in Pythone: pandas

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

Discriptis columnis

Tabulae quae operaris cum justos vel etiam centenas columnarum notitiarum contineant. Sed ut regulam analysin perficias, omnibus columnis quae in mensa fonti praesto sunt non debes.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Una igitur ex primis operationibus quas in tabula fontana perficies, supervacuas notitias illustrare et memoriam liberare quam haec notitia occupat.

Columnas in R: tidyverse, dplyr

Syntax dplyr linguae SQL interrogationi simillimum est, si nota ei est, hanc sarcinam cito vinces.

Ad columnas eligere, munere utere select().

Subter exempla sunt codicis cum quibus columnas in hunc modum eligere possis:

  • Enumeratio nomina columnarum inquisitorum
  • Quaere columnae nominibus uti expressionibus regularibus
  • Data per genus vel aliqua alia proprietas notitiarum quae in columna

Columnas in 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)

Discriptis columnis in R: data.table

Eadem opera in data.table paulo aliter peraguntur, initio articuli descriptionem praebevi quae argumenta intra brackets quadrata sunt data.table.

DT[i,j,by]

ubi:
I. — quo, i.e. eliquare per ordines
j - select|update|do, i.e. eligens columnas et convertens
per - data grouping

Discriptis columnis in 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$")]

variabilis .SD permittit te accedere ad omnes columnas, et .SDcols filter columnas requisitas adhibitis expressionibus regularibus vel aliis functionibus ad nomina columnarum quae debes eliquare.

Pythone columnas selectas, pandas

Eligere columnas nomine in pandas nomina eorum indicem praebere satis est. Columnas eligere vel excludere nominatim utentibus expressionibus regularibus, functionibus uti debes drop() и filter()et argumentum axis = 1cum quo significas columnas potius quam ordines necesse esse.

Eligere agrum data genus, munus uti select_dtypes()et in argumentis includere aut excludere index generum notitiarum, quae correspondentes agros eligere debes.

In Pythone columnas selectas: 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'])

ordines eliquare

Exempli causa, fons mensae plures annos notitiarum continere potest, sed solum mensem ultimum resolvere debes. Iterum extra lineas processui notitiae tardabit et memoriam PC inpediunt.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Ordines eliquare in R: tydyverse, dplyr

В dplyr munus est ad ordines filter filter(). Dataframe ut primum argumentum accipit, tunc condiciones eliquare numeras.

Cum dictiones logicas scribo ad mensam spargendam, hoc in casu, columnam nomina sine virgulis denota et sine nomine tabellae declarans.

Cum multiplices expressiones logicas utentes ad colum, his operatoribus utere:

  • & vel comma - logicum AND
  • | - logica OR*

Ordines eliquare in R: dplyr

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

Ordines eliquare in R: data.table

Ut iam supra scripsi, in data.table data conversionis syntaxis uncis quadratis inclusum est.

DT[i,j,by]

ubi:
I. — quo, i.e. eliquare per ordines
j - select|update|do, i.e. eligens columnas et convertens
per - data grouping

Argumentum ad ordines filter iqui primum locum habet uncis quadratis.

Columnae accesserunt in expressiones logicas sine notis et sine notis denotatis nomine mensae.

Locutiones Logicae se habent ad invicem eodem modo ac in dplyr per ipsos & operarios.

Ordines eliquare in R: data.table

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

Fila eliquare in Pythone: pandas

Filtrum per ordines in pandas similis eliquare in data.tableet fit uncis quadratis.

In hoc casu, accessus ad columnas necessario fit indicando nomen notitiarum, tum nomen columnae in uncis quadratis etiam notis notis indicari potest.exempli gratia df['col_name']) vel sine quotes post tempus (exempli gratia df.col_name).

Si pluribus conditionibus datam formam eliquare debes, unaquaeque conditio parenthesi ponenda est. Connexae sunt conditiones logicae ab operariis inter se & и |.

Fila eliquare in Pythone: 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)]

Concursus et aggregatio data

Una e communissimis operationibus in analysi usitatis est aggregatio et aggregatio.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Syntaxis ad has operationes perficiendas per omnes fasciculos sparsa est quae recensebimus.

Hoc in casu exemplum dataframe capiemus titanicet calculare numerum ac mediocris sumptus tesserarum secundum casulam classium.

Ordinatio et aggregatio data in R: tidyverse, dplyr

В dplyr munus adhibetur ad partes group_by()ac aggregationis summarise(). Nam dplyr est tota familia functionum summarise_*()sed propositum est huius articuli syntaxin fundamentalem comparare, ergo in tali saltu non eamus.

Congregatio fundamentalis functionum;

  • sum() - summation
  • min() / max() - minimum et maximum valorem
  • mean() - mediocris
  • median() - median
  • length() - quantitas

Congregatio et aggregatio in R: dplyr

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

Ad munus group_by() transivimus in mensa ut primum argumentum titanicac deinde campum indicavit Pclassper quam mensam nostram aggregare volumus. Effectus huius operationis utens operante %>% Transierunt ut prima ratio ad munus summarise()adiecitque 2 agros; viatores и avg_price. In primo utens munere length() numerum tesserarum computavit et in secundo munere usus est mean() mediocris tessera pretium accepit.

Ordinatio et aggregatio data in R: data.table

В data.table ad argumentum adhibetur ad aggregationem j quae alteram positionem habet in uncis quadratis et pro copula by aut keybyquae tertium locum habent.

Munus aggregationis elenchus in hoc casu idem est ac qui in descriptus est dplyr, quod haec sunt functiones a syntaxi R fundamentali.

Ordinationem et aggregationem in R: data.table

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

Ordinatio et aggregatio data in Pythone: pandas

Coetus in pandas similis dplyr, aggregatio autem non est similis dplyr non on- data.table.

Ad coetus, modum utere groupby()in quam indices columnarum praeterire debes, quibus notitiae tabulae conglobentur.

Pro aggregatione uti potes modum agg()quod dictionarium admittit. Dictionarium claves sunt columnae quibus functiones aggregationis applicabis et valores nomina functionum aggregationis sunt.

munera aggregatio:

  • sum() - summation
  • min() / max() - minimum et maximum valorem
  • mean() - mediocris
  • median() - median
  • count() - quantitas

munus reset_index() in exemplo infra utendum est ut indices reset nested pandas defaltis ut cum notitia aggregatio.

signum sino te movere ad proximam aciem.

Coniunctio et aggregatio in Pythone: pandas

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

Junctura tabularum verticalium

Operatio in qua duas pluresve tabulas ejusdem structurae adjungas. Notitia onustus continet mensas ga_nov и ga_dec. Hae tabulae identicae sunt in structura, i.e. easdem habent columnas, et in his columnis data genera.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Haec fasciculus apud Google Analyticorum mense Novembri et Decembri est, in hac sectione hanc notam in unam tabulam componemus.

Perpendiculariter iungentes tabulas in R: tidyverse, dplyr .

В dplyr II tabulas in unum munus uti potes bind_rows()tates pro argumentis.

Ordines eliquare in R: dplyr

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

Mensas verticaliter iungentes in R: data.table

Etiam nihil implicatum est, usus sit rbind().

Ordines eliquare in R: data.table

## data.table
rbind(ga_nov, ga_dec)

Perpendiculariter iungentes tabulas in Pythone: pandas

В pandas munus adhibetur ad iungere mensas concat()in quos indices tabularum cogendarum praeterire debes.

Fila eliquare in Pythone: pandas

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

Horizontalis juncta tabularum

Operatio in qua columnae secundae adduntur primae tabulae per clavem. Saepius adhibetur cum mensam facti ditans (exempli gratia, mensam cum notitia venditio) cum aliqua notitia (exempli gratia, sumptus facti).

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Coniunctionum plura genera sunt;

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Antea in mensa loaded titanic habemus columna Sexquae respondet sexi codicei vectoris;

1 - femina
2 - mas

Etiam mensam - relationem libri creavimus genus. Ad commodiorem expositionem notitiarum in genere viatorum, nomen generis ex indicem addere oportet genus ad mensam titanic.

Mensa horizontalis coniunge in R: tidyverse, dplyr

В dplyr Est tota familia functionum ad coniunctionem horizontalem;

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

Maxime in usu est left_join().

Ut primis duobus argumentis, functiones supra positae sumunt duas tabulas ad copulandum, et ad tertiam rationem by columnas iungere debes.

Mensa horizontalis coniunge in R: dplyr

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

Tabularum horizontalium in R: data.table

В data.table Tabulas iungere debes a key munus utens merge().

Argumenta iungi () munus in data.table

  • x, y
  • by — Columna, quae clavis est iungendi si idem nomen habeat in utraque tabula
  • by.x, by.y — Nomina columnarum confundenda, si nomina in tabulis habeant
  • all, all.x, all.y — Join type, omnes redibunt omnes ordines ex utraque tabula, all.x correspondet operationi sinistrae JOIN (relinquet omnes ordines primae tabulae), all.y — respondet. RURE JOIN operationi (relinquet omnes ordines secundae tabulae).

Tabularum horizontalium in R: data.table

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

Tabula Horizontalis coniunge in Pythone: pandas

Tum in data.tableapud pandas munus adhibetur ad iungere mensas merge().

Argumenta merge () munus in pandas

  • quomodo - Connection type: sinistra, dextra, exterior, interior
  • on — Columna, quae clavis est, si idem nomen in utraque tabula habet
  • left_on, right_on — Nomina columnarum clavis, si diversa nomina in tabulis habent

Tabula Horizontalis coniunge in Pythone: pandas

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

Munera fundamentalia fenestrae et calculata columnarum

Functiones fenestrae sunt similes significationis functionibus aggregationis, et saepe etiam in analysi ponuntur. Sed functiones aggregationis dissimilis, functiones fenestrae numerum ordinum exitu notitiarum non mutant.

Quam linguam eligere ad operandum cum data - R vel Pythone? Uterque! Migrans pandas ad tidyverse et data.table et retro

Essentialiter, functione fenestra usus, venientes notitias in partes secundum quamdam criterium dividemus, i.e. de valore agrorum vel plurium agrorum. Et operationes arithmeticae exercemus in unaquaque fenestra. Ex his operationibus in singulis lineis reddendum erit, i.e. non mutato numero ordinum in tabula.

Exempli gratia: mensam sumamus titanic. Computare possumus quid recipis sumptus cuiuslibet tesserae intra genus suum casae.

Ad hoc faciendum, necesse est ut in unaquaque linea totalem sumptus tesserae pro casula classis currentis, ad quam tessera in hac linea pertinet, sumptus singularum tesserarum dividere per summam omnium tesserarum ejusdem casulae classis sumptus .

Fenestra functionum in R: tidyverse, dplyr

Novas columnas addere, sine versuum globo adhibitis, in dplyr munus serves mutate().

Potes solvere quaestionem supra scripta adjunctio data per agrum Pclass et quoquo agro in columna nova facite. Deinceps mensam ordinate et agrum valores divide facite ad id quod in priore passu factum est.

Fenestrae functiones in R: dplyr

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

Windows functiones in R: data.table

Solutio algorithmus eadem manet ac in dplyr, mensam in fenestras dividere per agrum necesse est Pclass. In nova columna quantum pro globo singulis lineis respondeat, et adde columnam in qua portionem sumptus cuiusque tesserae in suo coetu computamus.

Ad novas columnas to data.table operator praesens :=. Infra exemplum solvendae quaestionis usura sarcina data.table

Windows functiones in R: data.table

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

Fenestrae munera in Pythone: pandas

Uno modo addere novam columnam to pandas - uti munus assign(). Ad summam tesserarum summatim per Cameram classis, sine ordinibus adjunctis, functione utemur transform().

Infra exemplum solutionis addimus in tabula titanic eisdem 2 columnis.

Fenestrae munera in Pythone: pandas

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

Munera et modi correspondentia mensae

Infra tabula correspondentiae est inter methodos ad varias operationes peragendas cum notitia in fasciculis quas pertractavimus.

Description
tidyverse
data.table
pandas

Data loading
vroom()/ readr::read_csv() / readr::read_tsv()
fread()
read_csv()

partum dataframes
tibble()
data.table()
dict() + from_dict()

Discriptis columnis
select()
ratio j, secundo loco in brackets quadratis
praeterimus in indicem requiritur columnarum in uncis quadratis / drop() / filter() / select_dtypes()

ordines eliquare
filter()
ratio i, Prima positio in uncis quadratis
Condiciones eliquare in uncis quadratis ponimus / filter()

Coetus et aggregatio
group_by() + summarise()
argumentorum j + by
groupby() + agg()

Unio tabularum verticalium (CONGREGATIO)
bind_rows()
rbind()
concat()

Junctura tabularum horizontalium (CONIUNCTIO)
left_join() / *_join()
merge()
merge()

Munera fundamentalia fenestrae et addens calculi columnas
group_by() + mutate()
ratio j usura operator := + argument by
transform() + assign()

conclusio,

Forsitan in articulo quem descripsimus non optimas rerum notitiarum exsecutiones, gaudebo si errata mea in commentis corrigis, vel notitias simpliciter in articulo datas cum aliis technicis artificiis operandi cum notitia in R/Pythone supplere.

Quemadmodum supra scripsimus, propositum articulum non opinionem suam in qua lingua melior est imponere, sed occasionem simpliciorem utriusque linguae discendi vel, si casus fert, inter eas migrandi.

Si articulum placuisti, laetus ero novos signatores meos habere YouTube и telegraphum rivos.

colloquium

Quod ex his uteris in opere packages?

In commentaria electionis tuae rationem scribere potes.

Tantum usores descripserunt in aliquet participare possunt. InscribeTe gratissimum esse.

Quod MGE sarcina uteris (potes pluribus options eligere)

  • 45,2%tidyverse19

  • 33,3%data.table14

  • 54,8%pandas23

42 utentes censuerunt. 9 Utentes abstinuerunt.

Source: www.habr.com

Add a comment