Primus gradus est cum incipit operari cum nova notitia statuta, est intelligere. Ad hoc faciendum debes, exempli gratia, ut ranges valorum ab variabilium, eorum speciebus acceptorum invenire, et etiam de numero valorum absentium cognoscere.
Pandas bibliotheca nobis praebet multa instrumenta utilia ad analysin exploratoria perficienda (EDA). Sed antequam his uteris, opus est ut communioribus functionibus incipere solere ut df.describe(). Attamen notandum est quod facultates talibus functionibus praevisae limitatae sunt, et initiales gradus operandi cum quavis notitia copiarum faciendo EDA, persaepe inter se simillimae.
Auctor materiae quam hodie divulgamus dicit eum non esse flabellam actionum repetitorum faciendorum. Quam ob rem, instrumenta quaerens ut cito et efficaciter analysin exploratorialia perficiat, invenit bibliothecam
Hic lineamenta spectabimus utendi bibliothecae pandas-profilingae utens in exemplo Titanica dataset.
Exploratori Analysis usura pandas
Placuit experiri cum pandas-profiling in Titanica dataset ob varias species notitiarum quas continet et praesentia valorum absentium in ea. Credo bibliothecam pandas-profiling praesertim esse interesting in casibus, ubi notitia nondum purgata est et ulteriores processus secundum proprietates eius requirit. Ut talem processum feliciter exerceas, scire debes ubi incipias et quid attendere. Hoc est ubi pandas profling facultates veniunt in habilem.
Primum, notitias et usus pandas ad statisticam describendi obtinendam importamus:
# ΠΈΠΌΠΏΠΎΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
import pandas as pd
import pandas_profiling
import numpy as np
# ΠΈΠΌΠΏΠΎΡΡ Π΄Π°Π½Π½ΡΡ
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')
# Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ
df.describe()
Post hanc codicis partem peractam habebis quod in sequenti figura ostenditur.
Descriptio statistics nactus per instrumenta pandas vexillum
Quamquam hic notitiae multae utiles sunt, non omnia continet quae studium de rebus cognoscendis interest. Exempli gratia, supponere potest quod in tabula data, in structura DataFrame
sunt ordines 891 . Si hoc inhiberi debet, alia linea codicis requiritur ad quantitatem membrorum determinare. Dum haec calculi non sunt praesertim resource intensiva, eas repetens omne tempus tenetur tempus terere quod probabiliter melius datam purgare posset.
Analysis exploratoriae notitia usura pandas-profiling
Nunc eodem pandas profilinge faciamus:
pandas_profiling.ProfileReport(df)
Exsequens supra lineam codicis relationem cum indicibus analyseos exploratoriis generabit. Codex supra demonstratus notitias inventas outputabit, sed fasciculum HTML outputare potes quod alicui ostendere possis, exempli gratia.
Prima pars relationis sectionem Overview continebit, praecipuas informationes de notitiis (numerum observationum, numerum variabilium, etc.). Indicem etiam summarum continebit, rerum analystam notificans sedulo curando. Haec summis extare praebere possunt ubi notitias tersus conatus intendere potes.
Overview fama sectionem
Exploratori variabilis Analysis
Infra sectionem Overview relationis invenire potes utiles informationes de singulis variabilibus. Includunt, praeter alia, chartulas singulas variabiles distributionem describentes.
De Aetate numerorum variabilis
Ut videre potes ex exemplo praecedente, pandas-profiling multa nobis praebet indices utiles, ut recipis et numerus valorum absentium, necnon mensurarum descriptio statisticarum quae iam vidimus. Quod Age
variabilis numeralis est, visualisatio distributionis in forma histogrammatis nobis permittit concludere nos distributionem alid ad ius habere.
Cum variabiles categoricas considero, eventus output paulo diversus sunt ab illis qui pro variabili numerorum numero inveniuntur.
Circa sex categorica variabilis
Nempe pro inveniendo medium, minimum et maximum, bibliotheca pandas-profiling numerum generum invenit. Quod Sex
β variabilis binarius, eius valores duobus generibus repraesentantur.
Si codicem similem facio examinare libet, studeas quomodo prorsus bibliothecam profilingalem pandas his metricis calculet. Hoc comperto, codicem bibliothecae in GitHub apertum et promptum esse, haud ita difficile est. Since I'm not a big fan of using black boxes in my projects, I took a look at the library's source code. Exempli gratia, haec mechanismus in variabilium numerorum expediendorum numerorum variabilium processui similis, per munus repraesentatur
def describe_numeric_1d(series, **kwargs):
"""Compute summary statistics of a numerical (`TYPE_NUM`) variable (a Series).
Also create histograms (mini an full) of its distribution.
Parameters
----------
series : Series
The variable to describe.
Returns
-------
Series
The description of the variable as a Series with index being stats keys.
"""
# Format a number as a percentage. For example 0.25 will be turned to 25%.
_percentile_format = "{:.0%}"
stats = dict()
stats['type'] = base.TYPE_NUM
stats['mean'] = series.mean()
stats['std'] = series.std()
stats['variance'] = series.var()
stats['min'] = series.min()
stats['max'] = series.max()
stats['range'] = stats['max'] - stats['min']
# To avoid to compute it several times
_series_no_na = series.dropna()
for percentile in np.array([0.05, 0.25, 0.5, 0.75, 0.95]):
# The dropna() is a workaround for https://github.com/pydata/pandas/issues/13098
stats[_percentile_format.format(percentile)] = _series_no_na.quantile(percentile)
stats['iqr'] = stats['75%'] - stats['25%']
stats['kurtosis'] = series.kurt()
stats['skewness'] = series.skew()
stats['sum'] = series.sum()
stats['mad'] = series.mad()
stats['cv'] = stats['std'] / stats['mean'] if stats['mean'] else np.NaN
stats['n_zeros'] = (len(series) - np.count_nonzero(series))
stats['p_zeros'] = stats['n_zeros'] * 1.0 / len(series)
# Histograms
stats['histogram'] = histogram(series, **kwargs)
stats['mini_histogram'] = mini_histogram(series, **kwargs)
return pd.Series(stats, name=series.name)
Licet haec pars codicis satis ampla et multiplex videatur, actu simplicissima intellegitur. Punctum est quod in fonte codicis bibliothecae munus est quod genera variabilium determinat. Si eveniat bibliothecam variabilem numerorum incidisse, munus illud metri inspiciebamus invenies. Hoc munus utitur vexillum pandas operationibus ad operandum cum obiectis generis Series
, sicut series.mean()
. Proventus calculi reponuntur in dictionario stats
. Histograms generantur versionem aptam functionis utentes matplotlib.pyplot.hist
. Accommodatio eo spectat ut munus operari possit cum diversis generibus notitiarum copiarum.
Correlation indicibus et specimen data studied
Post eventus analysis variabilium, pandas-profiling, in sectione Correlationum, correlationem matrices Pearson et Spearman exhibebunt.
Pearson ratione matricis
Si opus est, in linea codicis quae generationis relationis triggera est, indices limen valorum qui relativo computandi usi sunt, pone. Hoc faciens, exprimere non potes quanta vis relationis momenti sit pro analysi tua.
Demum, relatio pandas-profilingorum, in sectione Sample, ostendit, in exemplum, particulam notitiarum ab initio notitiarum statutorum desumptam. Hic accessus ad incommodas admirationes ducere potest, cum paucae primae observationes exemplum repraesentare possint quod notas totius notitiae statutae non reflectit.
Sectio continet specimen data sub studio
Quam ob rem non suadeo attendentes hanc sectionem ultimam. Sed melius est uti imperio df.sample(5)
, quae passim 5 observationes e notitia paroeciarum eligunt.
results
Ad summam, bibliotheca pandas-profiling dat analyticum aliquas facultates utiles quae in promptu erunt in casibus in quibus opus est ut cito asperam notitiarum notionem accipias vel in analysi intelligentiae famam alicui transeas. Eodem tempore, verus labor cum notitia, ratione notarum suarum, conficitur quasi sine usu pandas-profiling, manually.
Vide si vis inspicere quae omnia analysi intelligentiae datae in uno libello Iuppiterno apparent, inspice
Carissimi legentibus! Ubi analyzing incipit nova notitia occidere?
Source: www.habr.com