ProHoster > Блог > Administrasi > Basa sing kudu dipilih kanggo nggarap data - R utawa Python? Loro-lorone! Migrasi saka panda kanggo tidyverse lan data.table lan bali
Basa sing kudu dipilih kanggo nggarap data - R utawa Python? Loro-lorone! Migrasi saka panda kanggo tidyverse lan data.table lan bali
Kanthi nggoleki R utawa Python ing Internet, sampeyan bakal nemokake jutaan artikel lan kilometer diskusi babagan topik sing luwih apik, luwih cepet lan luwih trep kanggo nggarap data. Nanging sayangé, kabeh artikel lan perselisihan iki ora utamané migunani.
Tujuan artikel iki yaiku kanggo mbandhingake teknik pangolahan data dhasar ing paket sing paling populer saka loro basa kasebut. Lan mbantu para pamaca kanthi cepet nguwasani bab sing durung dingerteni. Kanggo sing nulis ing Python, mangerteni carane nindakake bab sing padha ing R, lan kosok balene.
Sajrone artikel, kita bakal nganalisa sintaks paket sing paling populer ing R. Iki minangka paket sing kalebu ing perpustakaan. tidyverselan uga paket data.table. Lan mbandhingake sintaks karo pandas, paket analisis data paling populer ing Python.
Kita bakal pindhah langkah demi langkah liwat kabeh path analisis data saka loading menyang nindakake fungsi jendhela analitis nggunakake Python lan R.
Isi
Artikel iki bisa digunakake minangka sheet cheat yen sampeyan wis lali carane nindakake sawetara operasi pangolahan data ing salah siji paket sing dianggep.
Yen sampeyan kasengsem ing analisis data, sampeyan bisa nemokake sandi telegram и youtube saluran. Sebagéyan gedhé isiné dikhususaké kanggo basa R.
Beda sintaks utama antarane R lan Python
Kanggo nggawe luwih gampang kanggo sampeyan ngalih saka Python kanggo R, utawa kosok balene, Aku bakal menehi sawetara TCTerms utama sing kudu mbayar manungsa waé kanggo.
Ngakses Fungsi Paket
Sawise paket dimuat menyang R, sampeyan ora perlu nemtokake jeneng paket kanggo ngakses fungsi kasebut. Ing kasus paling iki ora umum ing R, nanging ditrima. Sampeyan ora kudu ngimpor paket yen sampeyan butuh salah sawijining fungsi ing kode sampeyan, nanging mung nelpon kanthi nemtokake jeneng paket lan jeneng fungsi kasebut. Pemisah antarane jeneng paket lan fungsi ing R minangka titik loro. package_name::function_name().
Ing Python, ing nalisir, iku dianggep klasik kanggo nelpon fungsi paket kanthi tegas nemtokake jeneng sawijining. Nalika paket diundhuh, biasane diwenehi jeneng shortened, f.eks. pandas biasane nganggo jeneng samaran pd. Fungsi paket diakses liwat titik package_name.function_name().
Assignment
Ing R, iku umum nggunakake panah kanggo nemtokake nilai kanggo obyek. obj_name <- value, sanajan tandha siji padha diijini, tandha siji padha ing R digunakake utamané kanggo pass nilai kanggo fungsi argumen.
Ing Python, tugas ditindakake kanthi eksklusif kanthi tandha sing padha obj_name = value.
Pengindeksan
Ana uga beda sing cukup signifikan ing kene. Ing R, indeksasi diwiwiti saka siji lan kalebu kabeh unsur sing ditemtokake ing sawetara asil,
Ing Python, indeksasi diwiwiti saka nol lan sawetara sing dipilih ora kalebu unsur pungkasan sing ditemtokake ing indeks kasebut. Dadi desain x[i:j] ing Python ora bakal kalebu unsur j.
Ana uga beda ing indeksasi negatif, ing notasi R x[-1] bakal ngasilake kabeh unsur vektor kajaba sing pungkasan. Ing Python, notasi sing padha bakal ngasilake mung unsur pungkasan.
Metode lan OOP
R ngleksanakake OOP kanthi cara dhewe, aku nulis babagan iki ing artikel kasebut "OOP ing basa R (bagean 1): kelas S3". Umumé, R minangka basa fungsional, lan kabeh sing ana ing kono dibangun ing fungsi. Mulane, contone, kanggo pangguna Excel, pindhah menyang tydiverse iku bakal luwih gampang saka pandas. Senajan iki bisa dadi pendapat subjektifku.
Ing cendhak, obyek ing R ora duwe cara (yen kita pirembagan bab kelas S3, nanging ana implementasine OOP liyane sing kurang umum). Mung ana fungsi umum sing ngolah kanthi beda-beda gumantung saka kelas obyek kasebut.
Pipa-pipa
Mbok menawa iki jenenge pandas Iku ora kabeh bener, nanging aku bakal nyoba kanggo nerangake makna.
Supaya ora nyimpen kalkulasi penengah lan ora ngasilake obyek sing ora perlu ing lingkungan kerja, sampeyan bisa nggunakake jinis pipa. Sing. pass asil pitungan saka siji fungsi kanggo sabanjuré, lan ora nyimpen asil penengah.
Ayo njupuk conto kode ing ngisor iki, ing ngendi kita nyimpen kalkulasi penengah ing obyek sing kapisah:
We nindakake 3 operasi sequentially, lan asil saben disimpen ing obyek kapisah. Nanging nyatane, kita ora butuh obyek penengah iki.
Utawa malah luwih elek, nanging luwih akrab karo pangguna Excel.
obj <- func3(func2(func1()))
Ing kasus iki, kita ora nyimpen asil pitungan penengah, nanging maca kode karo fungsi nested arang banget trep.
Kita bakal ndeleng sawetara pendekatan kanggo ngolah data ing R, lan nindakake operasi sing padha kanthi cara sing beda-beda.
Pipeline ing perpustakaan tidyverse dileksanakake dening operator %>%.
obj <- func1() %>%
func2() %>%
func3()
Mangkono kita njupuk asil karya func1() lan pass minangka argumen pisanan kanggo func2(), banjur kita ngliwati asil pitungan iki minangka argumen pisanan func3(). Lan ing pungkasan, kita nulis kabeh kalkulasi sing ditindakake ing obyek kasebut obj <-.
Kabeh ing ndhuwur digambarake luwih apik tinimbang tembung dening meme iki:
В data.table rentengan digunakake ing cara sing padha.
Ing saben kurung kothak sampeyan bisa nggunakake asil saka operasi sadurungé.
В pandas operasi kuwi dipisahake dening titik.
obj = df.fun1().fun2().fun3()
Sing. kita njupuk meja kita df lan nggunakake metode dheweke fun1(), banjur kita aplikasi cara kanggo asil dijupuk fun2()sawise fun3(). Asil asil disimpen ing obyek obj .
Struktur data
Struktur data ing R lan Python padha, nanging duwe jeneng beda.
Description
Jeneng ing R
Jeneng ing Python/pandas
Struktur tabel
data.frame, data.tabel, data
DataFrame
Dhaptar nilai siji-dimensi
Vector
Seri ing panda utawa dhaptar ing Python murni
Struktur non-tabular multi-level
Dhaptar
Kamus (dict)
Kita bakal ndeleng sawetara fitur liyane lan bedane sintaksis ing ngisor iki.
Sawetara tembung babagan paket sing bakal digunakake
Pisanan, aku bakal ngandhani sethithik babagan paket sing bakal sampeyan kenal sajrone artikel iki.
tidyverse
Situs web resmi: tidyverse.org
perpustakaan tidyverse ditulis dening Hedley Wickham, Ilmuwan Riset Senior ing RStudio. tidyverse kasusun saka pesawat nyengsemaken paket sing menakake Processing data, 5 kang kalebu ing ndhuwur 10 downloads saka gudang CRAN.
Inti perpustakaan kasusun saka paket ing ngisor iki: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. Saben paket kasebut ditujokake kanggo ngrampungake masalah tartamtu. Tuladhane dplyr digawe kanggo manipulasi data, tidyr kanggo nggawa data menyang wangun sing rapi, stringr simplifies nggarap strings, lan ggplot2 minangka salah sawijining alat visualisasi data sing paling populer.
Kauntungan tidyverse yaiku sintaksis sing gampang lan gampang diwaca, sing meh padha karo basa query SQL.
Rilis pisanan perpustakaan kasebut ditindakake ing taun 2006.
Sintaks paket ora trep kaya ing tidyverse lan luwih kaya dataframes klasik ing R, nanging ing wektu sing padha Ngartekno ditambahi ing fungsi.
Kabeh manipulasi karo tabel ing paket iki diterangake ing kurung kothak, lan yen sampeyan nerjemahake sintaks data.table ing SQL, sampeyan entuk kaya iki: data.table[ WHERE, SELECT, GROUP BY ]
Kekuwatan paket iki yaiku kacepetan ngolah data sing akeh.
Jeneng perpustakaan asalé saka istilah ekonometrik "data panel", digunakake kanggo njlèntrèhaké set multidimensi kabentuk informasi.
Pengarang pandas yaiku Amerika Wes McKinney.
Nalika nerangake analisis data ing Python, witjaksono pandas Ora. Paket tingkat dhuwur banget multifungsi sing ngidini sampeyan nindakake manipulasi apa wae karo data, saka ngemot data saka sumber apa wae kanggo nggambarake.
Nginstal paket tambahan
Paket sing dibahas ing artikel iki ora kalebu ing distribusi R lan Python dhasar. Sanajan ana caveat cilik, yen sampeyan wis nginstal distribusi Anaconda, banjur nginstal tambahan pandas ora dibutuhake.
Nginstal paket ing R
Yen sampeyan wis mbukak lingkungan pangembangan RStudio paling sethithik sapisan, sampeyan mbokmenawa wis ngerti carane nginstal paket sing dibutuhake ing R. Kanggo nginstal paket, gunakake printah standar. install.packages() kanthi mbukak langsung ing R dhewe.
# установка пакетов
install.packages("vroom")
install.packages("readr")
install.packages("dplyr")
install.packages("data.table")
Sawise instalasi, paket kudu disambungake, sing biasane digunakake printah library().
# подключение или импорт пакетов в рабочее окружение
library(vroom)
library(readr)
library(dplyr)
library(data.table)
Nginstal Paket ing Python
Dadi, yen sampeyan wis nginstal Python murni, banjur pandas sampeyan kudu nginstal kanthi manual. Bukak baris perintah, utawa terminal, gumantung saka sistem operasi sampeyan lan ketik printah ing ngisor iki.
pip install pandas
Banjur kita bali menyang Python lan ngimpor paket sing diinstal kanthi printah kasebut import.
import pandas as pd
Loading Data
Data mining minangka salah sawijining langkah paling penting ing analisis data. Loro-lorone Python lan R, yen dikarepake, menehi sampeyan kesempatan sing akeh kanggo njupuk data saka sumber apa wae: file lokal, file saka Internet, situs web, kabeh jinis database.
Saindhenging artikel kita bakal nggunakake sawetara set data:
Loro download saka Google Analytics.
Dataset Penumpang Titanic.
Kabeh data ana ing sandi GitHub ing wangun file csv lan tsv. Saka ngendi kita bakal njaluk wong-wong mau?
Ngunggah data menyang R: tidyverse, vroom, readr
Kanggo mbukak data menyang perpustakaan tidyverse Ana rong paket: vroom, readr. vroom luwih modern, nanging ing mangsa ngarep paket bisa digabungake.
vroom vs maca
Apa release saka vroom tegese kanggo readr? Saiki, kita rencana supaya loro paket kasebut berkembang kanthi kapisah, nanging kemungkinan bakal nggabungake paket kasebut ing mangsa ngarep. Siji kerugian kanggo maca kesed vroom yaiku masalah data tartamtu ora bisa dilapurake ing ngarep, mula kudu dipikirake kanthi apik.
vroom vs maca
Apa tegese release? vroom kanggo readr? Ing wayahe, kita rencana ngembangake loro paket kasebut kanthi kapisah, nanging bisa uga bakal digabungake ing mangsa ngarep. Salah sijine kekurangane males maca vroom iku sawetara masalah karo data ora bisa kacarita ing advance, supaya sampeyan kudu mikir bab carane paling apik kanggo gabungke.
Ing artikel iki, kita bakal ndeleng loro paket loading data:
Ing paket vroom, preduli saka format data csv / tsv, loading ditindakake kanthi fungsi kanthi jeneng sing padha vroom(), ing paket readr kita nggunakake fungsi beda kanggo saben format read_tsv() и read_csv().
Loading data menyang R: data.tabel
В data.table ana fungsi kanggo loading data fread().
Yen kita mbandhingake karo paket R, banjur ing kasus iki sintaks paling cedhak pandas bakal readr, amarga pandas bisa njaluk data saka ngendi wae, lan ana kulawarga kabèh fungsi ing paket iki read_*().
read_csv()
read_excel()
read_sql()
read_json()
read_html()
Lan akeh fungsi liyane sing dirancang kanggo maca data saka macem-macem format. Nanging kanggo tujuan kita wis cukup read_table() utawa read_csv() nggunakake argumentasi Sep kanggo nemtokake pemisah kolom.
В pandas nggawe pigura digawa metu ing sawetara orane tumrap sekolah, pisanan kita nggawe kamus, lan banjur kita Ngonversi kamus menyang dataframe.
Nggawe dataframe ing Python: panda
# создаём дата фрейм
gender_dict = {'id': [1, 2],
'gender': ["female", "male"]}
# преобразуем словарь в датафрейм
gender = pd.DataFrame.from_dict(gender_dict)
Milih Kolom
Tabel sing sampeyan gunakake bisa ngemot puluhan utawa malah atusan kolom data. Nanging kanggo nindakake analisis, minangka aturan, sampeyan ora perlu kabeh kolom sing kasedhiya ing tabel sumber.
Mulane, salah sawijining operasi pisanan sing bakal ditindakake karo tabel sumber yaiku mbusak informasi sing ora perlu lan mbebasake memori sing ana ing informasi kasebut.
Milih kolom ing R: tidyverse, dplyr
sintaks dplyr meh padha karo basa query SQL, yen sampeyan ngerti sampeyan bakal cepet nguwasani paket iki.
Kanggo milih kolom, gunakake fungsi kasebut select().
Ing ngisor iki conto kode sing sampeyan bisa milih kolom kanthi cara ing ngisor iki:
Dhaptar jeneng kolom sing dibutuhake
Deleng jeneng kolom nggunakake ekspresi reguler
Miturut jinis data utawa properti liyane saka data sing ana ing kolom
Milih kolom ing 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)
Milih kolom ing R: data.tabel
Operasi sing padha ing data.table dileksanakake rada beda, ing wiwitan artikel aku menehi katrangan babagan argumen apa sing ana ing jero kurung data.table.
DT[i,j,by]
Ngendi:
i - ngendi, i.e. nyaring miturut larik
j - pilih|update|do, i.e. milih kolom lan ngowahi
dening - data klompok
Variabel .SD ngijini sampeyan kanggo ngakses kabeh kolom, lan .SDcols nyaring kolom sing dibutuhake nggunakake ekspresi biasa, utawa fungsi liyane kanggo nyaring jeneng kolom sing dibutuhake.
Milih kolom ing Python, panda
Kanggo milih kolom miturut jeneng ing pandas iku cukup kanggo nyedhiyani dhaftar jeneng sing. Lan kanggo milih utawa ngilangi kolom kanthi jeneng nggunakake ekspresi biasa, sampeyan kudu nggunakake fungsi kasebut drop() и filter(), lan argumentasi sumbu = 1, sing nuduhake yen sampeyan kudu ngolah kolom tinimbang baris.
Kanggo milih kolom miturut jinis data, gunakake fungsi kasebut select_dtypes(), lan dadi argumentasi kalebu utawa ngilangi ngliwati dhaptar jinis data sing cocog karo lapangan sing kudu sampeyan pilih.
Milih kolom ing Python: panda
# Выбор полей по названию
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'])
Nyaring baris
Contone, tabel sumber bisa ngemot sawetara taun data, nanging sampeyan mung kudu nganalisa sasi pungkasan. Maneh, garis ekstra bakal alon proses pangolahan data lan clog munggah memori PC.
Nyaring larik ing R: tydyverse, dplyr
В dplyr fungsi digunakake kanggo nyaring larik filter(). Butuh dataframe minangka argumen pisanan, banjur sampeyan dhaptar kahanan nyaring.
Nalika nulis ekspresi logis kanggo nyaring tabel, ing kasus iki, nemtokake jeneng kolom tanpa kuotasi lan tanpa nyatakake jeneng tabel.
Nalika nggunakake macem-macem ekspresi logis kanggo nyaring, gunakake operator ing ngisor iki:
& utawa koma - logis AND
| - logika OR
Nyaring baris ing R: dplyr
# фильтрация строк
## dplyr
### фильтрация строк по одному условию
filter(ga_nov, source == "google")
### фильтр по двум условиям соединённым логическим и
filter(ga_nov, source == "google" & sessions >= 10)
### фильтр по двум условиям соединённым логическим или
filter(ga_nov, source == "google" | sessions >= 10)
Nyaring larik ing R: data.table
Kaya sing wis daktulis ing ndhuwur, ing data.table sintaks konversi data wis dilampirake ing kurung kothak.
DT[i,j,by]
Ngendi:
i - ngendi, i.e. nyaring miturut larik
j - pilih|update|do, i.e. milih kolom lan ngowahi
dening - data klompok
Argumentasi digunakake kanggo nyaring baris i, sing nduweni posisi pisanan ing kurung kothak.
Kolom diakses kanthi ekspresi logis tanpa tandha petik lan tanpa nemtokake jeneng tabel.
Ekspresi logis ana hubungane karo saben liyane kanthi cara sing padha dplyr liwat operator & lan |.
Nyaring larik ing R: data.table
## data.table
### фильтрация строк по одному условию
ga_nov[source == "google"]
### фильтр по двум условиям соединённым логическим и
ga_nov[source == "google" & sessions >= 10]
### фильтр по двум условиям соединённым логическим или
ga_nov[source == "google" | sessions >= 10]
Nyaring strings ing Python: panda
Filter miturut baris ing pandas padha karo nyaring ing data.table, lan rampung ing kurung kothak.
Ing kasus iki, akses menyang kolom kudu ditindakake kanthi nuduhake jeneng kerangka data; banjur jeneng kolom uga bisa dituduhake ing tandha petik ing kurung kothak (contodf['col_name']), utawa tanpa kuotasi sawise periode (contodf.col_name).
Yen sampeyan kudu nyaring dataframe miturut sawetara kahanan, saben kondisi kudu diselehake ing kurung. Kondisi logis disambungake karo siji liyane dening operator & и |.
Nyaring strings ing Python: panda
# Фильтрация строк таблицы
### фильтрация строк по одному условию
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)]
Pengelompokan lan panggabungan data
Salah sawijining operasi sing paling umum digunakake ing analisis data yaiku klompok lan agregasi.
Sintaks kanggo nindakake operasi kasebut kasebar ing kabeh paket sing dideleng.
Ing kasus iki, kita bakal njupuk dataframe minangka conto Titanic, lan ngetung nomer lan biaya rata-rata tiket gumantung ing kelas kabin.
Panglompokan lan panggabungan data ing R: tidyverse, dplyr
В dplyr fungsi digunakake kanggo kelompok group_by(), lan kanggo agregasi summarise(). Nyatane, dplyr ana kulawarga kabèh fungsi summarise_*(), nanging tujuan artikel iki yaiku kanggo mbandhingake sintaksis dhasar, supaya kita ora bakal mlebu ing alas kaya ngono.
Ing fungsi group_by() kita ngliwati meja minangka argumen pisanan Titanic, banjur nuduhake lapangan Pkelas, kang kita bakal grup meja kita. Asil saka operasi iki nggunakake operator %>% liwati minangka argumen pisanan kanggo fungsi kasebut summarise(), lan ditambahake 2 lapangan liyane: wong liwat и rega_rata. Ing kawitan, nggunakake fungsi length() diwilang nomer karcis, lan ing kaloro nggunakake fungsi mean() nampa rega tiket rata-rata.
Ngelompokake lan nglumpukake data ing R: data.tabel
В data.table argumentasi digunakake kanggo nglumpukake j sing nduweni posisi kapindho ing kurung kothak, lan kanggo klompok by utawa keyby, sing duwe posisi katelu.
Dhaptar fungsi agregasi ing kasus iki padha karo sing diterangake ing dplyr, amarga iki minangka fungsi saka sintaks R dhasar.
Pengelompokan lan panggabungan ing R: data.tabel
## data.table
### фильтрация строк по одному условию
titanic[, .(passangers = length(PassengerId),
avg_price = mean(Fare)),
by = Pclass]
Panglompokan lan panggabungan data ing Python: panda
Pengelompokan ing pandas padha karo dplyr, nanging panggabungan ora padha karo dplyr ora on data.table.
Kanggo klompok, gunakake metode groupby(), ing ngendi sampeyan kudu ngliwati dhaptar kolom sing bakal diklompokaké pigura data.
Kanggo agregasi sampeyan bisa nggunakake cara agg()kang nampa kamus. Tombol kamus yaiku kolom sing bakal digunakake kanggo fungsi agregasi, lan nilai kasebut minangka jeneng fungsi agregasi.
Fungsi agregasi:
sum() - penjumlahan
min() / max() - nilai minimal lan maksimum
mean() - rata-rata
median() - median
count() - jumlah
fungsi reset_index() ing conto ing ngisor iki digunakake kanggo ngreset indeks nested sing pandas gawan sawise nglumpukake data.
Simbol ngidini sampeyan pindhah menyang baris sabanjure.
Pengelompokan lan panggabungan ing Python: panda
# группировка и агрегация данных
titanic.groupby(["Pclass"]).
agg({'PassengerId': 'count', 'Fare': 'mean'}).
reset_index()
Gabungan vertikal saka tabel
Operasi sing nggabungake loro utawa luwih tabel saka struktur sing padha. Data sing kita muat ngemot tabel ga_nov и ga_dec. Tabel iki padha ing struktur, i.e. duwe kolom sing padha, lan jinis data ing kolom kasebut.
Iki minangka unggahan saka Google Analytics kanggo sasi November lan Desember, ing bagean iki kita bakal nggabungake data iki dadi siji tabel.
Vertikal nggabungake tabel ing R: tidyverse, dplyr
В dplyr Sampeyan bisa gabungke 2 tabel dadi siji nggunakake fungsi kasebut bind_rows(), ngliwati tabel minangka argumen.
Nyaring baris ing R: dplyr
# Вертикальное объединение таблиц
## dplyr
bind_rows(ga_nov, ga_dec)
Vertikal nggabungake tabel ing R: data.table
Iku uga ora rumit, ayo nggunakake rbind().
Nyaring larik ing R: data.table
## data.table
rbind(ga_nov, ga_dec)
Vertikal nggabungake tabel ing Python: panda
В pandas fungsi digunakake kanggo nggabungake tabel concat(), ing ngendi sampeyan kudu ngliwati dhaptar pigura kanggo nggabungake.
Nyaring strings ing Python: panda
# вертикальное объединение таблиц
pd.concat([ga_nov, ga_dec])
Gabungan tabel horisontal
Operasi ing ngendi kolom saka kaloro ditambahake menyang tabel pisanan kanthi tombol. Asring digunakake nalika nambah tabel fakta (contone, tabel kanthi data dodolan) kanthi sawetara data referensi (contone, biaya produk).
Ana sawetara jinis gabungan:
Ing tabel sadurunge dimuat Titanic kita duwe kolom sex, sing cocog karo kode gender penumpang:
1 - wadon
2 - lanang
Uga, kita wis nggawe tabel - buku referensi jender. Kanggo presentasi data sing luwih trep babagan jender penumpang, kita kudu nambah jeneng jender saka direktori kasebut jender menyang meja Titanic.
Tabel horisontal gabung ing R: tidyverse, dplyr
В dplyr Ana kulawarga kabeh fungsi kanggo gabung horisontal:
inner_join()
left_join()
right_join()
full_join()
semi_join()
nest_join()
anti_join()
Sing paling umum digunakake ing praktikku yaiku left_join().
Minangka rong argumen pisanan, fungsi sing kadhaptar ing ndhuwur njupuk rong tabel kanggo gabung, lan minangka argumen katelu by sampeyan kudu nemtokake kolom kanggo gabung.
Tabel horisontal gabung ing R: dplyr
# объединяем таблицы
left_join(titanic, gender,
by = c("Sex" = "id"))
Gabungan horisontal saka tabel ing R: data.table
В data.table Sampeyan kudu nggabungake tabel kanthi tombol nggunakake fungsi kasebut merge().
Argumen kanggo nggabungake () fungsi ing data.table
x, y - Tabel kanggo gabung
dening - Column sing tombol kanggo nggabungake yen wis jeneng padha ing loro tabel
by.x, by.y - Jeneng kolom sing bakal digabung, yen padha duwe jeneng beda ing tabel
kabeh, all.x, all.y - Gabung jinis, kabeh bakal bali kabeh larik saka loro tabel, all.x cocog karo operasi LEFT JOIN (bakal ninggalake kabeh larik saka tabel pisanan), all.y - cocog karo RIGHT JOIN operasi (bakal ninggalake kabeh larik saka tabel kapindho).
Uga ing data.tableing pandas fungsi digunakake kanggo nggabungake tabel merge().
Argumen saka merge() fungsi ing panda
carane - Jinis sambungan: kiwa, tengen, njaba, njero
on - Column sing tombol yen wis jeneng padha ing loro tabel
left_on, right_on - Jeneng kolom tombol, yen padha duwe jeneng beda ing tabel
Tabel horisontal gabung ing Python: panda
# объединяем по ключу
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")
Fungsi jendhela dhasar lan kolom sing diwilang
Fungsi jendhela padha ing makna kanggo fungsi agregasi, lan uga asring digunakake ing analisis data. Nanging ora kaya fungsi agregasi, fungsi jendhela ora ngganti jumlah larik saka dataframe metu.
Ateges, nggunakake fungsi jendhela, kita pamisah dataframe mlebu menyang bagean miturut sawetara kritéria, i.e. kanthi nilai lapangan, utawa sawetara kolom. Lan kita nindakake operasi aritmetika ing saben jendhela. Asil saka operasi iki bakal bali ing saben baris, i.e. tanpa ngganti jumlah total larik ing meja.
Contone, ayo njupuk meja Titanic. Kita bisa ngetung apa persentasi biaya saben tiket ing kelas kabin sawijining.
Kanggo nindakake iki, kita kudu entuk ing saben baris biaya total tiket kanggo kelas kabin saiki sing tiket ing baris iki belongs, banjur dibagi biaya saben tiket karo total biaya kabeh tiket saka kelas kabin padha. .
Fungsi jendhela ing R: tidyverse, dplyr
Kanggo nambah kolom anyar, tanpa nggunakake klompok baris, ing dplyr serves fungsi mutate().
Sampeyan bisa ngatasi masalah sing diterangake ing ndhuwur kanthi nglumpukake data miturut lapangan Pkelas lan summing kolom ing kolom anyar apa. Sabanjure, ungroup tabel lan dibagi nilai lapangan apa kanggo apa sing kedadeyan ing langkah sadurunge.
Algoritma solusi tetep padha karo ing dplyr, kita kudu pamisah tabel menyang jendhela dening lapangan Pkelas. Output ing kolom anyar jumlah kanggo klompok cocog kanggo saben baris, lan nambah kolom kang kita ngetung nuduhake biaya saben tiket ing sawijining klompok.
Kanggo nambah kolom anyar kanggo data.table operator saiki :=. Ing ngisor iki minangka conto kanggo ngrampungake masalah nggunakake paket kasebut data.table
Fungsi jendhela ing R: data.table
titanic[,c("Pclass_cost","ticket_fare_rate") := .(sum(Fare), Fare / Pclass_cost),
by = Pclass]
Fungsi jendhela ing Python: panda
Salah siji cara kanggo nambah kolom anyar pandas - nggunakake fungsi assign(). Kanggo ngringkes biaya karcis dening kelas kabin, tanpa klompok larik, kita bakal nggunakake fungsi transform().
Ing ngisor iki minangka conto solusi sing ditambahake ing meja Titanic padha 2 kolom.
Milih Kolom select()
padudon j, posisi kapindho ing kurung kothak
kita ngliwati dhaptar kolom sing dibutuhake ing tanda kurung / drop() / filter() / select_dtypes()
Nyaring baris filter()
padudon i, posisi pisanan ing kurung kothak
Kita dhaptar kahanan nyaring ing kurung kothak / filter()
Pengelompokan lan Agregasi group_by() + summarise()
bantahan j + by groupby() + agg()
Fungsi jendhela dhasar lan nambah kolom sing diwilang group_by() + mutate()
padudon j nggunakake operator := + argumentasi by transform() + assign()
kesimpulan
Mungkin ing artikel sing dakgambarake minangka implementasine paling optimal saka pangolahan data, mula aku bakal bungah yen sampeyan mbenerake kesalahanku ing komentar, utawa mung nambah informasi sing diwenehake ing artikel kasebut kanthi teknik liya kanggo nggarap data ing R / Python.
Kaya sing dakcritakake ing ndhuwur, tujuan artikel kasebut ora kanggo ngetrapake pendapat babagan basa sing luwih apik, nanging kanggo nyederhanakake kesempatan kanggo sinau basa loro kasebut, utawa, yen perlu, migrasi ing antarane.
Yen sampeyan seneng karo artikel kasebut, aku bakal seneng duwe pelanggan anyar youtube и telegram saluran.
Jajak Pendapat
Endi saka paket ing ngisor iki sing sampeyan gunakake ing karya sampeyan?
Ing komentar sampeyan bisa nulis alesan kanggo pilihan sampeyan.
Mung pangguna pangguna sing bisa melu survey. mlebunggih.
Paket pangolahan data endi sing sampeyan gunakake (sampeyan bisa milih sawetara opsi)