Delen via


MLTable Klas

Vertegenwoordigt een MLTable.

Een MLTable definieert een reeks lazily-geëvalueerde, onveranderbare bewerkingen om gegevens uit de gegevensbron te laden. 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.

Constructor

MLTable()

Methoden

convert_column_types

Voegt 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()
       }
drop_columns

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen uit de gegevensset te verwijderen. Als er een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.

Als u een kolom probeert neer te zetten die MLTable.traits.timestamp_column of in MLTable.traits.index_columns, wordt een UserErrorException weergegeven.

extract_columns_from_partition_format

Voegt een transformatiestap toe om de partitiegegevens van elk pad te gebruiken en deze te extraheren in kolommen op basis van de opgegeven partitieindeling.

Als onderdeel {column_name} wordt een tekenreekskolom gemaakt en {column_name:jjjj/MM/dd/HH/mm/ss} wordt een datum/tijdkolom gemaakt, waarbij 'jjjj', 'MM', 'dd', 'uu', 'mm' en 'ss' worden gebruikt voor het extraheren van jaar, maand, dag, uur en seconde voor het datum/tijd-type.

De indeling moet beginnen vanaf de positie van de eerste partitiesleutel tot het einde van het bestandspad. Bijvoorbeeld, op basis van het pad '/Accounts/2019/01/01/data.csv' waar de partitie is op afdelingsnaam en -tijd, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' maakt een tekenreekskolom 'Afdeling' 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 die overeenkomen met de opgegeven expressie.

get_partition_count

Retourneert het aantal gegevenspartities dat aan deze MLTable is gekoppeld.

keep_columns

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te behouden en alle andere kolommen uit de gegevensset te verwijderen. Als er 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 wordt bewaard, wordt een UserErrorException gehandhaafd.

random_split

Splitst deze MLTable willekeurig op in twee MLTables, één met ongeveer 'percentage'% van de gegevens van de oorspronkelijke MLTable en de andere met de rest (1-'percent'%).

save

Sla deze MLTable op als een MLTable YAML-bestand en de assoicated paden naar het opgegeven mappad.

Als het pad niet is opgegeven, wordt standaard de huidige werkmap gebruikt. Als het pad niet bestaat, wordt het gemaakt. Als het pad extern is, moet het onderliggende gegevensarchief al bestaan. Als het pad een lokale map is en niet absoluut is, wordt het absoluut gemaakt.

Als het pad naar een bestand verwijst, wordt er een UserErrorException gegenereerd. Als het pad een mappad is dat al een of meer bestanden bevat die worden opgeslagen (inclusief het YAML-bestand van MLTable) en overschrijven is ingesteld op Onwaar of 'fail', wordt er een UserErrorException gegenereerd. Als het pad extern is, worden lokale bestandspaden die niet zijn opgegeven als een pad in een punt (bestandspad ten opzichte van de map waaruit MLTable is geladen) een UserErrorException genereren.

Hiermee bepaalt u hoe gekoppelde paden worden opgeslagen in het pad. Indien waar, worden bestanden gekopieerd naar het pad naast het MLTable YAML-bestand als relatieve bestandspaden. Anders worden gekoppelde bestanden niet gekopieerd, blijven externe paden ongewijzigd en worden lokale bestandspaden indien nodig relatief gemaakt met padomleiding. Houd er rekening mee dat Onwaar kan leiden tot niet-colocated MLTable YAML-bestanden die niet worden aanbevolen, bovendien 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 MLTable-mappad de huidige werkmap is.

Houd er rekening mee wanneer u een nieuwe MLTable- en gekoppelde gegevensbestanden opslaat in een map met een bestaand MLTable-bestand en gekoppelde gegevensbestanden die niet door de map worden gewist voordat u de nieuwe bestanden opslaat. Het is mogelijk dat bestaande gegevensbestanden behouden blijven na het opslaan van de nieuwe bestanden, met name als bestaande gegevensbestanden geen namen hebben die overeenkomen met nieuwe gegevensbestanden. Als de nieuwe MLTable een patroonontwerp onder de paden bevat, kan dit onbedoeld de MLTable wijzigen door bestaande gegevensbestanden te koppelen aan de nieuwe MLTable.

Als bestandspaden in deze MLTable verwijzen naar een bestaand bestand in pad , maar een andere URI hebben, wordt het bestaande bestand niet overschreven als overschrijven mislukt of overslaan wordt het bestaande bestand niet overschreven (bijvoorbeeld overgeslagen).

select_partitions

Hiermee voegt u een transformatiestap toe om de partitie te selecteren.

show

Haalt de eerste tellingsrijen van deze MLTable op als een Pandas Dataframe.

skip

Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable over te slaan.

take

Hiermee voegt u 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 . Waarschijnlijkheid moet liggen in het bereik [0, 1]. Kan eventueel een willekeurig zaad instellen.

to_pandas_dataframe

Laad alle records uit de paden die in het MLTable-bestand zijn opgegeven in een Pandas DataFrame.

validate

Valideert of de gegevens van deze MLTable kunnen worden geladen. Hiervoor moeten de gegevensbronnen van de MLTable toegankelijk zijn vanaf de huidige berekening.

convert_column_types

Voegt 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: typt de gebruikerswensen om te converteren

Retouren

Type Description

MLTable met toegevoegde transformatiestap

drop_columns

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen uit de gegevensset te verwijderen. Als er een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.

Als u een kolom probeert neer te zetten die MLTable.traits.timestamp_column of in MLTable.traits.index_columns, wordt een UserErrorException weergegeven.

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

Parameters

Name Description
columns
Vereist
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

kolom(en) die uit deze MLTable moeten worden verwijderd

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 te extraheren in kolommen op basis van de opgegeven partitieindeling.

Als onderdeel {column_name} wordt een tekenreekskolom gemaakt en {column_name:jjjj/MM/dd/HH/mm/ss} wordt een datum/tijdkolom gemaakt, waarbij 'jjjj', 'MM', 'dd', 'uu', 'mm' en 'ss' worden gebruikt voor het extraheren van jaar, maand, dag, uur en seconde voor het datum/tijd-type.

De indeling moet beginnen vanaf de positie van de eerste partitiesleutel tot het einde van het bestandspad. Bijvoorbeeld, op basis van het pad '/Accounts/2019/01/01/data.csv' waar de partitie is op afdelingsnaam en -tijd, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' maakt een tekenreekskolom 'Afdeling' 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
str

Partitie-indeling voor het extraheren van gegevens in kolommen

Retouren

Type Description

MLTable waarvan de partitieindeling is ingesteld op de opgegeven indeling

filter

Filter de gegevens en laat alleen de records 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 diverse functies en operators en kunnen worden gecombineerd met logische operators. De resulterende expressie wordt lazily 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 aan deze MLTable is gekoppeld.

get_partition_count() -> int

Retouren

Type Description
int

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 er 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 wordt bewaard, wordt een UserErrorException gehandhaafd.

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

Parameters

Name Description
columns
Vereist
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

kolommen in deze MLTable om te behouden

Retouren

Type Description

MLTable met toegevoegde transformatiestap

random_split

Splitst deze MLTable willekeurig op in twee MLTables, één met ongeveer 'percentage'% van de gegevens van de oorspronkelijke MLTable 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 te splitsen tussen

seed
Vereist

optionele willekeurige seed

Retouren

Type Description

twee MLTables met de gegevens van deze MLTable die zijn gesplitst met 'percentage'

save

Sla deze MLTable op als een MLTable YAML-bestand en de assoicated paden naar het opgegeven mappad.

Als het pad niet is opgegeven, wordt standaard de huidige werkmap gebruikt. Als het pad niet bestaat, wordt het gemaakt. Als het pad extern is, moet het onderliggende gegevensarchief al bestaan. Als het pad een lokale map is en niet absoluut is, wordt het absoluut gemaakt.

Als het pad naar een bestand verwijst, wordt er een UserErrorException gegenereerd. Als het pad een mappad is dat al een of meer bestanden bevat die worden opgeslagen (inclusief het YAML-bestand van MLTable) en overschrijven is ingesteld op Onwaar of 'fail', wordt er een UserErrorException gegenereerd. Als het pad extern is, worden lokale bestandspaden die niet zijn opgegeven als een pad in een punt (bestandspad ten opzichte van de map waaruit MLTable is geladen) een UserErrorException genereren.

Hiermee bepaalt u hoe gekoppelde paden worden opgeslagen in het pad. Indien waar, worden bestanden gekopieerd naar het pad naast het MLTable YAML-bestand als relatieve bestandspaden. Anders worden gekoppelde bestanden niet gekopieerd, blijven externe paden ongewijzigd en worden lokale bestandspaden indien nodig relatief gemaakt met padomleiding. Houd er rekening mee dat Onwaar kan leiden tot niet-colocated MLTable YAML-bestanden die niet worden aanbevolen, bovendien 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 MLTable-mappad de huidige werkmap is.

Houd er rekening mee wanneer u een nieuwe MLTable- en gekoppelde gegevensbestanden opslaat in een map met een bestaand MLTable-bestand en gekoppelde gegevensbestanden die niet door de map worden gewist voordat u de nieuwe bestanden opslaat. Het is mogelijk dat bestaande gegevensbestanden behouden blijven na het opslaan van de nieuwe bestanden, met name als bestaande gegevensbestanden geen namen hebben die overeenkomen met nieuwe gegevensbestanden. Als de nieuwe MLTable een patroonontwerp onder de paden bevat, kan dit onbedoeld de MLTable wijzigen door bestaande gegevensbestanden te koppelen aan de nieuwe MLTable.

Als bestandspaden in deze MLTable verwijzen naar een bestaand bestand in pad , maar een andere URI hebben, wordt het bestaande bestand niet overschreven als overschrijven mislukt of overslaan wordt het bestaande bestand niet overschreven (bijvoorbeeld overgeslagen).

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

Parameters

Name Description
path
Vereist
str

mappad om op te slaan in, standaard naar huidige werkmap

colocated
Vereist

Als waar, worden kopieën van lokale en externe bestandspaden opgeslagen in deze MLTable onder pad als relatieve paden. Anders worden er geen bestandskopiebewerkingen uitgevoerd en worden externe bestandspaden opgeslagen als gegeven aan het opgeslagen MLTable YAML-bestand en lokale bestandspaden als relatieve bestandspaden met padomleiding. Als het pad extern is en deze MLTable lokale bestandspaden bevat, wordt er een UserErrorException gegenereerd.

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

Hoe bestaande MLTable YAML-bestanden en bijbehorende bestanden die mogelijk al onder het pad bestaan, worden verwerkt. Opties zijn 'overschrijven' (of Waar) om bestaande bestanden te vervangen, 'fail' (of False) om een fout te genereren als er al een bestand bestaat of 'overslaan' om bestaande bestanden te laten zoals is. 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, verwijdert u alle opgeslagen bestanden om de bewerking atomisch te maken

Retouren

Type Description

dit MLTable-exemplaar

select_partitions

Hiermee voegt u een transformatiestap toe om de partitie te selecteren.

select_partitions(partition_index_list)

Parameters

Name Description
partition_index_list
Vereist
list of int

lijst met partitieindex

Retouren

Type Description

MLTable met de 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 tellingsrijen van deze MLTable op als een Pandas Dataframe.

show(count=20)

Parameters

Name Description
count
Vereist
int

aantal rijen boven aan de tabel dat u wilt selecteren

Retouren

Type Description
<xref:Pandas> <xref:Dataframe>

eerste telling 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
int

aantal rijen om over te slaan

Retouren

Type Description

MLTable met toegevoegde transformatiestap

take

Hiermee voegt u een transformatiestap toe om de eerste tellingsrijen van deze MLTable te selecteren.

take(count=20)

Parameters

Name Description
count
Vereist
int

aantal rijen boven aan de tabel dat u wilt selecteren

Retouren

Type Description

MLTable met toegevoegde stap voor 'take'-transformatie

take_random_sample

Hiermee voegt u een transformatiestap toe om elke rij van deze MLTable willekeurig te selecteren met waarschijnlijkheidskans . Waarschijnlijkheid moet liggen in het bereik [0, 1]. Kan eventueel een willekeurig zaad instellen.

take_random_sample(probability, seed=None)

Parameters

Name Description
probability
Vereist

kans dat elke rij is geselecteerd

seed
Vereist

optionele willekeurige seed

Retouren

Type Description

MLTable met toegevoegde transformatiestap

to_pandas_dataframe

Laad alle records uit de paden die in het MLTable-bestand zijn opgegeven in een Pandas DataFrame.

to_pandas_dataframe()

Retouren

Type Description

Pandas Dataframe met de records uit paden in deze MLTable

Opmerkingen

In het volgende codefragment ziet u hoe u de to_pandas_dataframe-API gebruikt om een pandas-gegevensframe 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. Hiervoor moeten de gegevensbronnen van de MLTable toegankelijk zijn vanaf de huidige berekening.

validate()

Retouren

Type Description

Geen

Kenmerken

partition_keys

Retourneer de partitiesleutels.

Retouren

Type Description

de partitiesleutels

paths

Retourneert een lijst met woordenlijsten met de oorspronkelijke paden die aan deze MLTable zijn gegeven. Relatieve lokale bestandspaden worden verondersteld ten opzichte van de map te zijn waaruit het MLTable YAML-bestand van dit MLTable-exemplaar is geladen.

Retouren

Type Description

lijst met dicteren met paden die zijn opgegeven in de MLTable