Condividi tramite


MLTable Classe

Rappresenta una tabella MLTable.

Una tabella MLTable definisce una serie di operazioni non modificabili valutate in modo differito per caricare i dati dall'origine dati. I dati non vengono caricati dall'origine fino a quando non viene richiesto a MLTable di recapitare i dati.

Inizializzare una nuova tabella MLTable.

Questo costruttore non deve essere richiamato direttamente. MLTable deve essere creato con load.

Ereditarietà
builtins.object
MLTable

Costruttore

MLTable()

Metodi

convert_column_types

Aggiunge un passaggio di trasformazione per convertire le colonne specificate nei rispettivi nuovi tipi specificati.


   from mltable import DataType
       data_types = {
           'ID': DataType.to_string(),
           'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
           'Count': DataType.to_int(),
           'Latitude': DataType.to_float(),
           'Found': DataType.to_bool(),
           'Stream': DataType.to_stream()
       }
drop_columns

Aggiunge un passaggio di trasformazione per eliminare le colonne specificate dal set di dati. Se non viene eliminato alcun elenco, una tupla o un set vuoto. Le colonne duplicate genereranno un'eccezione UserErrorException.

Se si tenta di eliminare una colonna MLTable.traits.timestamp_column o in MLTable.traits.index_columns, verrà generata un'eccezione UserErrorException.

extract_columns_from_partition_format

Aggiunge un passaggio di trasformazione per usare le informazioni sulla partizione di ogni percorso ed estrarle in colonne in base al formato di partizione specificato.

La parte di formato '{column_name}' crea una colonna stringa e '{column_name:a/MM/dd/HH/mm/ss}' crea una colonna datetime, dove 'aaaa', 'MM', 'dd', 'HH', 'mm' e 'ss' vengono usati per estrarre anno, mese, giorno, ora, minuto e secondo per il tipo datetime.

Il formato deve iniziare dalla posizione della prima chiave di partizione fino alla fine del percorso del file. Ad esempio, dato il percorso '/Accounts/2019/01/01/data.csv' in cui la partizione è in base al nome e all'ora del reparto, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' crea una colonna stringa 'Department' con il valore 'Accounts' e una colonna datetime 'PartitionDate' con il valore '2019-01-01'.

filter

Filtrare i dati, lasciando solo i record che corrispondono all'espressione specificata.

get_partition_count

Restituisce il numero di partizioni di dati sottostanti i dati associati a questa tabella MLTable.

keep_columns

Aggiunge un passaggio di trasformazione per mantenere le colonne specificate ed eliminare tutte le altre dal set di dati. Se non viene eliminato alcun elenco, una tupla o un set vuoto. Le colonne duplicate genereranno un'eccezione UserErrorException.

Se la colonna in MLTable.traits.timestamp_column o colonne in MLTable.traits.index_columns non viene mantenuta in modo esplicito, viene eseguita un'eccezione UserErrorException.

random_split

Suddivide in modo casuale questo MLTable in due MLTable, uno con circa "percentuale"% dei dati di MLTable originali e l'altro con il resto (1-"percent"%).

save

Salvare questo OGGETTO MLTable come file YAML MLTable & i relativi percorsi associati al percorso di directory specificato.

Se il percorso non viene specificato, il valore predefinito è la directory di lavoro corrente. Se il percorso non esiste, viene creato. Se il percorso è remoto, l'archivio dati sottostante deve esistere già. Se path è una directory locale & non è assoluto, viene reso assoluto.

Se il percorso punta a un file, viene generata un'eccezione UserErrorException. Se path è un percorso di directory che contiene già uno o più file da salvare (incluso il file YAML MLTable) e la sovrascrittura è impostata su False o "fail". Viene generata un'eccezione UserErrorException. Se il percorso è remoto, tutti i percorsi di file locali non specificati come percorso condiviso (percorso file relativo alla directory da cui è stato caricato MLTable) genererà un'eccezione UserErrorException.

il percorso condiviso controlla la modalità di salvataggio dei percorsi associati nel percorso. Se True, i file vengono copiati nel percorso insieme al file YAML MLTable come percorsi di file relativi. In caso contrario, i file associati non vengono copiati, i percorsi remoti rimangono come specificati e i percorsi dei file locali vengono resi relativi al reindirizzamento del percorso, se necessario. Si noti che False può comportare file YAML MLTable non con punti che non sono consigliati, inoltre, se il percorso è remoto, verrà generata un'eccezione UserErrorException perché il reindirizzamento del percorso relativo non è supportato per gli URI remoti.

Si noti che se MLTable viene creato a livello di codice con metodi come from_paths() o from_read_delimited_files() con percorsi relativi locali, si presuppone che il percorso della directory MLTable sia la directory di lavoro corrente.

Tenere presente quando si salva un nuovo oggetto MLTable & file di dati associati in una directory con un file MLTable esistente & file di dati associati che la directory non viene cancellata dai file esistenti prima di salvare i nuovi file. È possibile che i file di dati già esistenti vengano salvati in modo permanente dopo il salvataggio dei nuovi file, soprattutto se i file di dati esistenti non hanno nomi corrispondenti a nuovi file di dati. Se la nuova tabella MLTable contiene un designatore di pattern nei relativi percorsi, questo può modificare involontariamente MLTable associando i file di dati esistenti alla nuova tabella MLTable.

Se i percorsi di file in questo MLTable puntano a un file esistente nel percorso ma hanno un URI diverso, se la sovrascrittura è "fail" o "skip" il file esistente non verrà sovrascritto (ad esempio ignorato).

select_partitions

Aggiunge un passaggio di trasformazione per selezionare la partizione.

show

Recupera le prime righe del conteggio di questa tabella MLTable come dataframe Pandas.

skip

Aggiunge un passaggio di trasformazione per ignorare le prime righe del conteggio di questa tabella MLTable.

take

Aggiunge un passaggio di trasformazione per selezionare le prime righe del conteggio di questa tabella MLTable.

take_random_sample

Aggiunge un passaggio di trasformazione per selezionare in modo casuale ogni riga di questa tabella MLTable con probabilità . La probabilità deve essere compreso nell'intervallo [0, 1]. Facoltativamente, è possibile impostare un valore di inizializzazione casuale.

to_pandas_dataframe

Caricare tutti i record dai percorsi specificati nel file MLTable in un dataframe Pandas.

validate

Verifica se i dati di MLTable possono essere caricati, richiede che le origini dati di MLTable siano accessibili dal calcolo corrente.

convert_column_types

Aggiunge un passaggio di trasformazione per convertire le colonne specificate nei rispettivi nuovi tipi specificati.


   from mltable import DataType
       data_types = {
           'ID': DataType.to_string(),
           'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
           'Count': DataType.to_int(),
           'Latitude': DataType.to_float(),
           'Found': DataType.to_bool(),
           'Stream': DataType.to_stream()
       }
convert_column_types(column_types)

Parametri

Nome Descrizione
column_types
Necessario

Dizionario di colonna: digita il desiderio dell'utente di convertire

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

drop_columns

Aggiunge un passaggio di trasformazione per eliminare le colonne specificate dal set di dati. Se non viene eliminato alcun elenco, una tupla o un set vuoto. Le colonne duplicate genereranno un'eccezione UserErrorException.

Se si tenta di eliminare una colonna MLTable.traits.timestamp_column o in MLTable.traits.index_columns, verrà generata un'eccezione UserErrorException.

drop_columns(columns: str | List[str] | Tuple[str] | Set[str])

Parametri

Nome Descrizione
columns
Necessario
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

colonne da eliminare da mlTable

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

extract_columns_from_partition_format

Aggiunge un passaggio di trasformazione per usare le informazioni sulla partizione di ogni percorso ed estrarle in colonne in base al formato di partizione specificato.

La parte di formato '{column_name}' crea una colonna stringa e '{column_name:a/MM/dd/HH/mm/ss}' crea una colonna datetime, dove 'aaaa', 'MM', 'dd', 'HH', 'mm' e 'ss' vengono usati per estrarre anno, mese, giorno, ora, minuto e secondo per il tipo datetime.

Il formato deve iniziare dalla posizione della prima chiave di partizione fino alla fine del percorso del file. Ad esempio, dato il percorso '/Accounts/2019/01/01/data.csv' in cui la partizione è in base al nome e all'ora del reparto, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' crea una colonna stringa 'Department' con il valore 'Accounts' e una colonna datetime 'PartitionDate' con il valore '2019-01-01'.

extract_columns_from_partition_format(partition_format)

Parametri

Nome Descrizione
partition_format
Necessario
str

Formato di partizione da usare per estrarre dati in colonne

Restituisce

Tipo Descrizione

MLTable il cui formato di partizione è impostato su un formato specificato

filter

Filtrare i dati, lasciando solo i record che corrispondono all'espressione specificata.

filter(expression)

Parametri

Nome Descrizione
expression
Necessario

Espressione da valutare.

Restituisce

Tipo Descrizione

MLTable dopo il filtro

Commenti

Le espressioni vengono avviate tramite l'indicizzazione della tabella mltable con il nome di una colonna. Supportano un'ampia gamma di funzioni e operatori e possono essere combinati usando operatori logici. L'espressione risultante verrà valutata in modo differito per ogni record quando si verifica un pull dei dati e non la posizione in cui è definita.


   filtered_mltable = mltable.filter('feature_1 == "5" and target > "0.5)"')
   filtered_mltable = mltable.filter('col("FBI Code") == "11"')

get_partition_count

Restituisce il numero di partizioni di dati sottostanti i dati associati a questa tabella MLTable.

get_partition_count() -> int

Restituisce

Tipo Descrizione
int

partizioni di dati in questa tabella MLTable

keep_columns

Aggiunge un passaggio di trasformazione per mantenere le colonne specificate ed eliminare tutte le altre dal set di dati. Se non viene eliminato alcun elenco, una tupla o un set vuoto. Le colonne duplicate genereranno un'eccezione UserErrorException.

Se la colonna in MLTable.traits.timestamp_column o colonne in MLTable.traits.index_columns non viene mantenuta in modo esplicito, viene eseguita un'eccezione UserErrorException.

keep_columns(columns: str | List[str] | Tuple[str] | Set[str])

Parametri

Nome Descrizione
columns
Necessario
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

colonne in questa tabella MLTable da mantenere

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

random_split

Suddivide in modo casuale questo MLTable in due MLTable, uno con circa "percentuale"% dei dati di MLTable originali e l'altro con il resto (1-"percent"%).

random_split(percent=0.5, seed=None)

Parametri

Nome Descrizione
percent
Necessario

percentuale di MLTable da dividere tra

seed
Necessario

valore di inizializzazione casuale facoltativo

Restituisce

Tipo Descrizione

due MLTable con i dati di MLTable suddivisi tra di essi per "percentuale"

save

Salvare questo OGGETTO MLTable come file YAML MLTable & i relativi percorsi associati al percorso di directory specificato.

Se il percorso non viene specificato, il valore predefinito è la directory di lavoro corrente. Se il percorso non esiste, viene creato. Se il percorso è remoto, l'archivio dati sottostante deve esistere già. Se path è una directory locale & non è assoluto, viene reso assoluto.

Se il percorso punta a un file, viene generata un'eccezione UserErrorException. Se path è un percorso di directory che contiene già uno o più file da salvare (incluso il file YAML MLTable) e la sovrascrittura è impostata su False o "fail". Viene generata un'eccezione UserErrorException. Se il percorso è remoto, tutti i percorsi di file locali non specificati come percorso condiviso (percorso file relativo alla directory da cui è stato caricato MLTable) genererà un'eccezione UserErrorException.

il percorso condiviso controlla la modalità di salvataggio dei percorsi associati nel percorso. Se True, i file vengono copiati nel percorso insieme al file YAML MLTable come percorsi di file relativi. In caso contrario, i file associati non vengono copiati, i percorsi remoti rimangono come specificati e i percorsi dei file locali vengono resi relativi al reindirizzamento del percorso, se necessario. Si noti che False può comportare file YAML MLTable non con punti che non sono consigliati, inoltre, se il percorso è remoto, verrà generata un'eccezione UserErrorException perché il reindirizzamento del percorso relativo non è supportato per gli URI remoti.

Si noti che se MLTable viene creato a livello di codice con metodi come from_paths() o from_read_delimited_files() con percorsi relativi locali, si presuppone che il percorso della directory MLTable sia la directory di lavoro corrente.

Tenere presente quando si salva un nuovo oggetto MLTable & file di dati associati in una directory con un file MLTable esistente & file di dati associati che la directory non viene cancellata dai file esistenti prima di salvare i nuovi file. È possibile che i file di dati già esistenti vengano salvati in modo permanente dopo il salvataggio dei nuovi file, soprattutto se i file di dati esistenti non hanno nomi corrispondenti a nuovi file di dati. Se la nuova tabella MLTable contiene un designatore di pattern nei relativi percorsi, questo può modificare involontariamente MLTable associando i file di dati esistenti alla nuova tabella MLTable.

Se i percorsi di file in questo MLTable puntano a un file esistente nel percorso ma hanno un URI diverso, se la sovrascrittura è "fail" o "skip" il file esistente non verrà sovrascritto (ad esempio ignorato).

save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)

Parametri

Nome Descrizione
path
Necessario
str

percorso della directory in cui salvare, per impostazione predefinita alla directory di lavoro corrente

colocated
Necessario

Se True, salva copie di percorsi di file locali & remoti in questa tabella MLTable nel percorso come percorsi relativi. In caso contrario, non viene eseguita alcuna copia di file e i percorsi di file remoti vengono salvati come specificati nel file YAML MLTable salvato e nei percorsi di file locali come percorsi di file relativi con reindirizzamento del percorso. Se il percorso è remoto & questa tabella MLTable contiene percorsi di file locali, verrà generata un'eccezione UserErrorException.

overwrite
Necessario
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]

Viene gestito il modo in cui vengono gestiti un file YAML MLTable e i file associati già esistenti nel percorso . Le opzioni sono "sovrascrivi" (o True) per sostituire eventuali file esistenti, "fail" (o False) per generare un errore se esiste già un file o "skip" per lasciare invariati i file esistenti. Può anche essere impostato con <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Necessario

visualizza lo stato di avanzamento della copia in stdout

if_err_remove_files
Necessario

se si verifica un errore durante il salvataggio, rimosso tutti i file salvati correttamente per rendere atomica l'operazione

Restituisce

Tipo Descrizione

questa istanza di MLTable

select_partitions

Aggiunge un passaggio di trasformazione per selezionare la partizione.

select_partitions(partition_index_list)

Parametri

Nome Descrizione
partition_index_list
Necessario
list of int

elenco dell'indice di partizione

Restituisce

Tipo Descrizione

MLTable con dimensioni della partizione aggiornate

Commenti

Il frammento di codice seguente illustra come usare l'API select_partitions per selezionare le partizioni dalla tabella MLTable fornita.


   partition_index_list = [1, 2]
   mltable = mltable.select_partitions(partition_index_list)

show

Recupera le prime righe del conteggio di questa tabella MLTable come dataframe Pandas.

show(count=20)

Parametri

Nome Descrizione
count
Necessario
int

numero di righe dall'inizio della tabella da selezionare

Restituisce

Tipo Descrizione
<xref:Pandas> <xref:Dataframe>

first count rows of the MLTable

skip

Aggiunge un passaggio di trasformazione per ignorare le prime righe del conteggio di questa tabella MLTable.

skip(count)

Parametri

Nome Descrizione
count
Necessario
int

numero di righe da ignorare

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

take

Aggiunge un passaggio di trasformazione per selezionare le prime righe del conteggio di questa tabella MLTable.

take(count=20)

Parametri

Nome Descrizione
count
Necessario
int

numero di righe dall'inizio della tabella da selezionare

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione "take" aggiunto

take_random_sample

Aggiunge un passaggio di trasformazione per selezionare in modo casuale ogni riga di questa tabella MLTable con probabilità . La probabilità deve essere compreso nell'intervallo [0, 1]. Facoltativamente, è possibile impostare un valore di inizializzazione casuale.

take_random_sample(probability, seed=None)

Parametri

Nome Descrizione
probability
Necessario

possibilità che ogni riga sia selezionata

seed
Necessario

valore di inizializzazione casuale facoltativo

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

to_pandas_dataframe

Caricare tutti i record dai percorsi specificati nel file MLTable in un dataframe Pandas.

to_pandas_dataframe()

Restituisce

Tipo Descrizione

Dataframe Pandas contenente i record dai percorsi in questa tabella MLTable

Commenti

Il frammento di codice seguente illustra come usare l'API to_pandas_dataframe per ottenere un dataframe pandas corrispondente all'oggetto MLTable fornito.


   from mltable import load
   tbl = load('.\samples\mltable_sample')
   pdf = tbl.to_pandas_dataframe()
   print(pdf.shape)

validate

Verifica se i dati di MLTable possono essere caricati, richiede che le origini dati di MLTable siano accessibili dal calcolo corrente.

validate()

Restituisce

Tipo Descrizione

Nessuno

Attributi

partition_keys

Restituisce le chiavi di partizione.

Restituisce

Tipo Descrizione

chiavi di partizione

paths

Restituisce un elenco di dizionari contenenti i percorsi originali assegnati a questa tabella MLTable. Si presuppone che i percorsi dei file locali relativi siano relativi alla directory da cui è stato caricato il file YAML MLTable da cui è stata caricata l'istanza MLTable.

Restituisce

Tipo Descrizione

elenco di dict contenenti percorsi specificati nella tabella MLTable