MLTable Klas
Vertegenwoordigt een MLTable.
Een MLTable definieert een reeks vertraagd geëvalueerde, onveranderbare bewerkingen voor het laden van gegevens uit de gegevensbron. Gegevens worden pas vanuit de bron geladen als MLTable wordt gevraagd om gegevens te leveren.
Initialiseer een nieuwe MLTable.
Deze constructor mag niet rechtstreeks worden aangeroepen. MLTable is bedoeld om te worden gemaakt met behulp van load.
- Overname
-
builtins.objectMLTable
Constructor
MLTable()
Methoden
convert_column_types |
Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te converteren naar hun respectieve opgegeven nieuwe typen.
|
drop_columns |
Voegt een transformatiestap toe om de opgegeven kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException. Als u probeert een kolom te verwijderen die zich MLTable.traits.timestamp_column of in MLTable.traits.index_columns bevindt, wordt een UserErrorException weergegeven. |
extract_columns_from_partition_format |
Voegt een transformatiestap toe om de partitiegegevens van elk pad te gebruiken en deze uit te pakken in kolommen op basis van de opgegeven partitieindeling. Met het opmaakonderdeel {column_name} wordt een tekenreekskolom gemaakt en met {column_name:yyyy/MM/dd/HH/mm/ss} wordt de datum/tijdkolom gemaakt, waarbij 'jjjj', 'MM', 'dd', 'uu', 'mm' en 'ss' worden gebruikt om jaar, maand, dag, uur, minuut en seconde te extraheren voor het datum/tijd-type. De indeling moet beginnen vanaf de positie van de eerste partitiesleutel tot het einde van het bestandspad. Bijvoorbeeld, gezien het pad '/Accounts/2019/01/01/data.csv' waarbij de partitie zich bevindt op afdelingsnaam en -tijd, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' wordt een tekenreekskolom 'Afdeling' gemaakt met de waarde 'Accounts' en een datum/tijd-kolom 'PartitionDate' met de waarde '2019-01-01'. |
filter |
Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie. |
get_partition_count |
Retourneert het aantal gegevenspartities dat ten grondslag komt aan de gegevens die zijn gekoppeld aan deze MLTable. |
keep_columns |
Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te behouden en alle andere kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException. Als de kolom in MLTable.traits.timestamp_column of kolommen in MLTable.traits.index_columns niet expliciet worden bewaard, is een UserErrorException niet beschikbaar. |
random_split |
Deze MLTable wordt willekeurig gesplitst in twee MLTables, waarbij één met ongeveer 'procent'% van de oorspronkelijke MLTable-gegevens en de andere met de rest (1-"percent"%). |
save |
Sla deze MLTable op als een MLTable YAML-bestand & de bijbehorende paden naar het opgegeven mappad. Als het pad niet is opgegeven, wordt standaard ingesteld op de huidige werkmap. Als het pad niet bestaat, wordt het gemaakt. Als het pad extern is, moet het onderliggende gegevensarchief al bestaan. Als pad een lokale map is & niet absoluut is, wordt het absoluut gemaakt. Als het pad naar een bestand verwijst, wordt er een UserErrorException gegenereerd. Als pad een mappad is dat al een of meer bestanden bevat die worden opgeslagen (inclusief het MLTable YAML-bestand) en overschrijven is ingesteld op False of 'fail', wordt er een UserErrorException gegenereerd. Als het pad extern is, wordt voor alle lokale bestandspaden die niet zijn opgegeven als een colocatiepad (bestandspad ten opzichte van de map waaruit MLTable is geladen) een UserErrorException weergegeven. Met colocated bepaalt u hoe gekoppelde paden worden opgeslagen in het pad. Als waar is, worden bestanden naar het pad gekopieerd naast het YAML-bestand MLTable als relatieve bestandspaden. Anders worden gekoppelde bestanden niet gekopieerd, blijven externe paden zoals opgegeven en worden lokale bestandspaden relatief gemaakt met padomleiding, indien nodig. Houd er rekening mee dat Onwaar kan leiden tot niet-cocated MLTable YAML-bestanden, wat niet wordt aanbevolen. Als het pad extern is, resulteert dit in een UserErrorException omdat relatieve padomleiding niet wordt ondersteund voor externe URI's. Als de MLTable programmatisch wordt gemaakt met methoden zoals from_paths() of from_read_delimited_files() met lokale relatieve paden, wordt ervan uitgegaan dat het pad naar de MLTable-map de huidige werkmap is. Let bij het opslaan van een nieuwe MLTable & gekoppelde gegevensbestanden in een map met een bestaand MLTable-bestand & gekoppelde gegevensbestanden dat de map niet wordt gewist van bestaande bestanden voordat de nieuwe bestanden worden opgeslagen. Het is mogelijk dat bestaande gegevensbestanden behouden blijven nadat de nieuwe bestanden zijn opgeslagen, met name als bestaande gegevensbestanden geen namen hebben die overeenkomen met nieuwe gegevensbestanden. Als de nieuwe MLTable een patroonontwerpfunctie onder de paden bevat, kan dit onbedoeld de MLTable wijzigen door bestaande gegevensbestanden te koppelen aan de nieuwe MLTable. Als bestandspaden in deze MLTable naar een bestaand bestand in pad verwijzen, maar een andere URI hebben, wordt het bestaande bestand niet overschreven (dat wil zeggen overgeslagen) als overschrijven mislukt of overslaan is. |
select_partitions |
Voegt een transformatiestap toe om de partitie te selecteren. |
show |
Haalt de eerste aantal rijen van deze MLTable op als een Pandas-gegevensframe. |
skip |
Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable over te slaan. |
take |
Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable te selecteren. |
take_random_sample |
Hiermee voegt u een transformatiestap toe om elke rij van deze MLTable willekeurig te selecteren met waarschijnlijkheidskans . De kans moet binnen het bereik [0, 1] liggen. Kan eventueel een willekeurig zaadje instellen. |
to_pandas_dataframe |
Laad alle records van de paden die zijn opgegeven in het MLTable-bestand in een Pandas DataFrame. |
validate |
Valideert of de gegevens van deze MLTable kunnen worden geladen, vereist dat de gegevensbron(s) van MLTable toegankelijk zijn vanuit de huidige berekening. |
convert_column_types
Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te converteren naar hun respectieve opgegeven nieuwe typen.
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)
Parameters
Name | Description |
---|---|
column_types
Vereist
|
Woordenlijst van kolom: typen die de gebruiker wil converteren |
Retouren
Type | Description |
---|---|
MLTable met toegevoegde transformatiestap |
drop_columns
Voegt een transformatiestap toe om de opgegeven kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.
Als u probeert een kolom te verwijderen die zich MLTable.traits.timestamp_column of in MLTable.traits.index_columns bevindt, wordt een UserErrorException weergegeven.
drop_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parameters
Name | Description |
---|---|
columns
Vereist
|
kolom(en) om uit deze MLTabel te verwijderen |
Retouren
Type | Description |
---|---|
MLTable met toegevoegde transformatiestap |
extract_columns_from_partition_format
Voegt een transformatiestap toe om de partitiegegevens van elk pad te gebruiken en deze uit te pakken in kolommen op basis van de opgegeven partitieindeling.
Met het opmaakonderdeel {column_name} wordt een tekenreekskolom gemaakt en met {column_name:yyyy/MM/dd/HH/mm/ss} wordt de datum/tijdkolom gemaakt, waarbij 'jjjj', 'MM', 'dd', 'uu', 'mm' en 'ss' worden gebruikt om jaar, maand, dag, uur, minuut en seconde te extraheren voor het datum/tijd-type.
De indeling moet beginnen vanaf de positie van de eerste partitiesleutel tot het einde van het bestandspad. Bijvoorbeeld, gezien het pad '/Accounts/2019/01/01/data.csv' waarbij de partitie zich bevindt op afdelingsnaam en -tijd, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' wordt een tekenreekskolom 'Afdeling' gemaakt met de waarde 'Accounts' en een datum/tijd-kolom 'PartitionDate' met de waarde '2019-01-01'.
extract_columns_from_partition_format(partition_format)
Parameters
Name | Description |
---|---|
partition_format
Vereist
|
Partitieindeling voor het extraheren van gegevens in kolommen |
Retouren
Type | Description |
---|---|
MLTable waarvan de partitie-indeling is ingesteld op de opgegeven indeling |
filter
Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie.
filter(expression)
Parameters
Name | Description |
---|---|
expression
Vereist
|
De expressie die moet worden geëvalueerd. |
Retouren
Type | Description |
---|---|
MLTable na filter |
Opmerkingen
Expressies worden gestart door de mltable te indexeren met de naam van een kolom. Ze ondersteunen verschillende functies en operators en kunnen worden gecombineerd met behulp van logische operators. De resulterende expressie wordt lui geëvalueerd voor elke record wanneer een gegevens pull plaatsvindt en niet waar deze is gedefinieerd.
filtered_mltable = mltable.filter('feature_1 == "5" and target > "0.5)"')
filtered_mltable = mltable.filter('col("FBI Code") == "11"')
get_partition_count
Retourneert het aantal gegevenspartities dat ten grondslag komt aan de gegevens die zijn gekoppeld aan deze MLTable.
get_partition_count() -> int
Retouren
Type | Description |
---|---|
gegevenspartities in deze MLTable |
keep_columns
Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te behouden en alle andere kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.
Als de kolom in MLTable.traits.timestamp_column of kolommen in MLTable.traits.index_columns niet expliciet worden bewaard, is een UserErrorException niet beschikbaar.
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parameters
Name | Description |
---|---|
columns
Vereist
|
kolommen in deze MLTabel om te bewaren |
Retouren
Type | Description |
---|---|
MLTable met toegevoegde transformatiestap |
random_split
Deze MLTable wordt willekeurig gesplitst in twee MLTables, waarbij één met ongeveer 'procent'% van de oorspronkelijke MLTable-gegevens en de andere met de rest (1-"percent"%).
random_split(percent=0.5, seed=None)
Parameters
Name | Description |
---|---|
percent
Vereist
|
percentage van de MLTable om tussen te splitsen |
seed
Vereist
|
optioneel willekeurig zaad |
Retouren
Type | Description |
---|---|
twee MLTables met de gegevens van deze MLTable tussen hen gesplitst door 'percent' |
save
Sla deze MLTable op als een MLTable YAML-bestand & de bijbehorende paden naar het opgegeven mappad.
Als het pad niet is opgegeven, wordt standaard ingesteld op de huidige werkmap. Als het pad niet bestaat, wordt het gemaakt. Als het pad extern is, moet het onderliggende gegevensarchief al bestaan. Als pad een lokale map is & niet absoluut is, wordt het absoluut gemaakt.
Als het pad naar een bestand verwijst, wordt er een UserErrorException gegenereerd. Als pad een mappad is dat al een of meer bestanden bevat die worden opgeslagen (inclusief het MLTable YAML-bestand) en overschrijven is ingesteld op False of 'fail', wordt er een UserErrorException gegenereerd. Als het pad extern is, wordt voor alle lokale bestandspaden die niet zijn opgegeven als een colocatiepad (bestandspad ten opzichte van de map waaruit MLTable is geladen) een UserErrorException weergegeven.
Met colocated bepaalt u hoe gekoppelde paden worden opgeslagen in het pad. Als waar is, worden bestanden naar het pad gekopieerd naast het YAML-bestand MLTable als relatieve bestandspaden. Anders worden gekoppelde bestanden niet gekopieerd, blijven externe paden zoals opgegeven en worden lokale bestandspaden relatief gemaakt met padomleiding, indien nodig. Houd er rekening mee dat Onwaar kan leiden tot niet-cocated MLTable YAML-bestanden, wat niet wordt aanbevolen. Als het pad extern is, resulteert dit in een UserErrorException omdat relatieve padomleiding niet wordt ondersteund voor externe URI's.
Als de MLTable programmatisch wordt gemaakt met methoden zoals from_paths() of from_read_delimited_files() met lokale relatieve paden, wordt ervan uitgegaan dat het pad naar de MLTable-map de huidige werkmap is.
Let bij het opslaan van een nieuwe MLTable & gekoppelde gegevensbestanden in een map met een bestaand MLTable-bestand & gekoppelde gegevensbestanden dat de map niet wordt gewist van bestaande bestanden voordat de nieuwe bestanden worden opgeslagen. Het is mogelijk dat bestaande gegevensbestanden behouden blijven nadat de nieuwe bestanden zijn opgeslagen, met name als bestaande gegevensbestanden geen namen hebben die overeenkomen met nieuwe gegevensbestanden. Als de nieuwe MLTable een patroonontwerpfunctie onder de paden bevat, kan dit onbedoeld de MLTable wijzigen door bestaande gegevensbestanden te koppelen aan de nieuwe MLTable.
Als bestandspaden in deze MLTable naar een bestaand bestand in pad verwijzen, maar een andere URI hebben, wordt het bestaande bestand niet overschreven (dat wil zeggen overgeslagen) als overschrijven mislukt of overslaan is.
save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)
Parameters
Name | Description |
---|---|
path
Vereist
|
mappad om op te slaan in, standaard ingesteld op huidige werkmap |
colocated
Vereist
|
Indien waar slaat u kopieën van lokale & externe bestandspaden in deze MLTable onder pad op als relatieve paden. Anders wordt er geen bestand gekopieerd en worden externe bestandspaden opgeslagen zoals opgegeven voor het opgeslagen MLTable YAML-bestand en lokale bestandspaden als relatieve bestandspaden met padomleiding. Als het pad extern is & deze MLTable lokale bestandspaden bevat, wordt een UserErrorException gegenereerd. |
overwrite
Vereist
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
Hoe een bestaand MLTable YAML-bestand en de bijbehorende bestanden die mogelijk al onder het pad bestaan, worden verwerkt. Opties zijn 'overwrite' (of True) om bestaande bestanden te vervangen, 'mislukt' (of onwaar) om een fout te genereren als een bestand al bestaat, of 'overslaan' om bestaande bestanden te laten zoals ze zijn. Kan ook worden ingesteld met <xref:mltable.MLTableSaveOverwriteOptions>. |
show_progress
Vereist
|
geeft de voortgang van het kopiëren naar stdout weer |
if_err_remove_files
Vereist
|
als er een fout optreedt tijdens het opslaan, zijn alle opgeslagen bestanden verwijderd om de bewerking atomisch te maken |
Retouren
Type | Description |
---|---|
dit MLTable-exemplaar |
select_partitions
Voegt een transformatiestap toe om de partitie te selecteren.
select_partitions(partition_index_list)
Parameters
Name | Description |
---|---|
partition_index_list
Vereist
|
lijst met partitie-index |
Retouren
Type | Description |
---|---|
MLTable met partitiegrootte bijgewerkt |
Opmerkingen
In het volgende codefragment ziet u hoe u de select_partitions-API gebruikt voor geselecteerde partities uit de opgegeven MLTable.
partition_index_list = [1, 2]
mltable = mltable.select_partitions(partition_index_list)
show
Haalt de eerste aantal rijen van deze MLTable op als een Pandas-gegevensframe.
show(count=20)
Parameters
Name | Description |
---|---|
count
Vereist
|
aantal rijen vanaf het begin van de tabel om te selecteren |
Retouren
Type | Description |
---|---|
<xref:Pandas> <xref:Dataframe>
|
eerste aantal rijen van de MLTable |
skip
Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable over te slaan.
skip(count)
Parameters
Name | Description |
---|---|
count
Vereist
|
aantal rijen om over te slaan |
Retouren
Type | Description |
---|---|
MLTable met toegevoegde transformatiestap |
take
Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable te selecteren.
take(count=20)
Parameters
Name | Description |
---|---|
count
Vereist
|
aantal rijen vanaf het begin van de tabel om te selecteren |
Retouren
Type | Description |
---|---|
MLTable met toegevoegde 'take'-transformatiestap |
take_random_sample
Hiermee voegt u een transformatiestap toe om elke rij van deze MLTable willekeurig te selecteren met waarschijnlijkheidskans . De kans moet binnen het bereik [0, 1] liggen. Kan eventueel een willekeurig zaadje instellen.
take_random_sample(probability, seed=None)
Parameters
Name | Description |
---|---|
probability
Vereist
|
kans dat elke rij is geselecteerd |
seed
Vereist
|
optioneel willekeurig zaad |
Retouren
Type | Description |
---|---|
MLTable met toegevoegde transformatiestap |
to_pandas_dataframe
Laad alle records van de paden die zijn opgegeven in het MLTable-bestand in een Pandas DataFrame.
to_pandas_dataframe()
Retouren
Type | Description |
---|---|
Pandas-gegevensframe met de records van paden in deze MLTable |
Opmerkingen
Het volgende codefragment laat zien hoe u de to_pandas_dataframe API gebruikt om een Pandas-dataframe te verkrijgen dat overeenkomt met de opgegeven MLTable.
from mltable import load
tbl = load('.\samples\mltable_sample')
pdf = tbl.to_pandas_dataframe()
print(pdf.shape)
validate
Valideert of de gegevens van deze MLTable kunnen worden geladen, vereist dat de gegevensbron(s) van MLTable toegankelijk zijn vanuit de huidige berekening.
validate()
Retouren
Type | Description |
---|---|
Geen |
Kenmerken
partition_keys
paths
Retourneert een lijst met woordenlijsten met de oorspronkelijke paden die aan deze MLTable zijn opgegeven. Relatieve lokale bestandspaden worden verondersteld relatief te zijn ten opzichte van de map waaruit het MLTable YAML-bestand dit MLTable-exemplaar is geladen.
Retouren
Type | Description |
---|---|
lijst met dicteren die paden bevatten die zijn opgegeven in de MLTable |