MLTable Clase

Representa una tabla MLTable.

Una MLTable define una serie de operaciones inmutables y diferidamente evaluadas para cargar datos desde el origen de datos. Los datos no se cargan desde el origen hasta que se pide a MLTable que entreguen datos.

Inicialice una nueva mlTable.

Este constructor no se supone que se invoque directamente. MLTable está pensado para crearse mediante load.

Herencia
builtins.object
MLTable

Constructor

MLTable()

Métodos

convert_column_types

Agrega un paso de transformación para convertir las columnas especificadas en sus respectivos tipos nuevos especificados.


   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

Agrega un paso de transformación para quitar las columnas especificadas del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Al intentar quitar una columna que se MLTable.traits.timestamp_column o en MLTable.traits.index_columns se generará una excepción UserErrorException.

extract_columns_from_partition_format

Agrega un paso de transformación para usar la información de partición de cada ruta de acceso y extraerla en columnas según el formato de partición especificado.

La parte de formato "{column_name}" crea una columna de cadena y "{column_name:yyyy/MM/dd/HH/mm/ss}" crea la columna datetime, donde "yyyy", "MM", "dd", "HH", "mm" y "ss" se usan para extraer el año, mes, día, hora, minutos y segundos para el tipo datetime.

El formato debe empezar en la posición de la primera clave de partición hasta el final de la ruta de acceso del archivo. Por ejemplo, dada la ruta de acceso '/Accounts/2019/01/01/data.csv' donde la partición es por nombre y hora del departamento, partition_format='/{Department}/{PartitionDate:aaaa/MM/dd}/data.csv' crea una columna de cadena 'Department' con el valor 'Accounts' y una columna datetime 'PartitionDate' con el valor '2019-01-01'.

filter

Filtra los datos, dejando solo los registros que coinciden con la expresión especificada.

get_partition_count

Devuelve el número de particiones de datos subyacentes a los datos asociados a esta MLTable.

keep_columns

Agrega un paso de transformación para mantener las columnas especificadas y quitar todas las demás del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Si la columna de MLTable.traits.timestamp_column o columnas de MLTable.traits.index_columns no se mantienen explícitamente, se pasa una excepción UserErrorException.

random_split

Divide aleatoriamente esta MLTable en dos MLTables, una que tiene aproximadamente el "porcentaje" de los datos originales de MLTable y el otro que tiene el resto (1-"porcentaje"%).

save

Guarde esta mlTable como un archivo YAML de MLTable & sus rutas de acceso asociadas a la ruta de acceso del directorio especificada.

Si no se especifica la ruta de acceso , el valor predeterminado es el directorio de trabajo actual. Si la ruta de acceso no existe, se crea. Si la ruta de acceso es remota, el almacén de datos subyacente ya debe existir. Si la ruta de acceso es un directorio local & no es absoluta, se hace absoluta.

Si la ruta de acceso apunta a un archivo, se genera una excepción UserErrorException. Si la ruta de acceso es una ruta de acceso de directorio que ya contiene uno o varios archivos que se guardan (incluido el archivo YAML de MLTable) y la sobrescritura se establece en False o "fail", se genera una excepción UserErrorException. Si la ruta de acceso es remota, las rutas de acceso de los archivos locales que no se proporcionan como una ruta de acceso coubica (ruta de acceso de archivo relativa al directorio desde el que se cargó MLTable) generarán una excepción UserErrorException.

coubicación controla cómo se guardan las rutas de acceso asociadas en la ruta de acceso. Si es True, los archivos se copian en la ruta de acceso junto con el archivo YAML de MLTable como rutas de acceso de archivo relativas. De lo contrario, los archivos asociados no se copian, las rutas de acceso remotas permanecen como dadas y las rutas de acceso locales se realizan en relación con el redireccionamiento de ruta de acceso si es necesario. Tenga en cuenta que False puede dar lugar a archivos YAML de MLTable no con punto y coma que no se recomiendan, además, si la ruta de acceso es remota, se producirá una excepción UserErrorException como redireccionamiento de ruta de acceso relativa no se admite para los URI remotos.

Tenga en cuenta que si MLTable se crea mediante programación con métodos como from_paths() o from_read_delimited_files() con rutas de acceso relativas locales, se supone que la ruta de acceso del directorio MLTable es el directorio de trabajo actual.

Tenga en cuenta al guardar una nueva mlTable & archivos de datos asociados a un directorio con un archivo MLTable existente & archivos de datos asociados que el directorio no está borrado de los archivos existentes antes de guardar los nuevos archivos. Es posible que los archivos de datos ya existentes se conserven después de guardar los nuevos archivos, especialmente si los archivos de datos existentes no tienen nombres que coincidan con los nuevos archivos de datos. Si el nuevo MLTable contiene un designador de patrones en sus rutas de acceso, esto puede alterar involuntariamente MLTable asociando archivos de datos existentes con la nueva MLTable.

Si las rutas de acceso de archivo de esta tabla MLTable apuntan a un archivo existente en la ruta de acceso, pero tienen un URI diferente, si la sobrescritura es "fail" o "skip", el archivo existente no se sobrescribirá (es decir, omitido).

select_partitions

Agrega un paso de transformación para seleccionar la partición.

show

Recupera las primeras filas de recuento de esta mlTable como dataframe de Pandas.

skip

Agrega un paso de transformación para omitir las primeras filas de recuento de esta mlTable.

take

Agrega un paso de transformación para seleccionar las primeras filas de recuento de esta mlTable.

take_random_sample

Agrega un paso de transformación para seleccionar aleatoriamente cada fila de esta MLTable con probabilidad de probabilidad . La probabilidad debe estar en el intervalo [0, 1]. Opcionalmente, puede establecer una inicialización aleatoria.

to_pandas_dataframe

Cargue todos los registros de las rutas de acceso especificadas en el archivo MLTable en un DataFrame de Pandas.

validate

Valida si se pueden cargar los datos de esta mlTable, requiere que los orígenes de datos de MLTable sean accesibles desde el proceso actual.

convert_column_types

Agrega un paso de transformación para convertir las columnas especificadas en sus respectivos tipos nuevos especificados.


   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)

Parámetros

column_types
dict[Union[Tuple[str], str], DataType]
Requerido

Diccionario de columnas: tipos que el usuario desea convertir

Devoluciones

MLTable con paso de transformación agregado

Tipo de valor devuelto

drop_columns

Agrega un paso de transformación para quitar las columnas especificadas del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Al intentar quitar una columna que se MLTable.traits.timestamp_column o en MLTable.traits.index_columns se generará una excepción UserErrorException.

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

Parámetros

columns
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]
Requerido

columnas que se van a quitar de esta mlTable

Devoluciones

MLTable con paso de transformación agregado

Tipo de valor devuelto

extract_columns_from_partition_format

Agrega un paso de transformación para usar la información de partición de cada ruta de acceso y extraerla en columnas según el formato de partición especificado.

La parte de formato "{column_name}" crea una columna de cadena y "{column_name:yyyy/MM/dd/HH/mm/ss}" crea la columna datetime, donde "yyyy", "MM", "dd", "HH", "mm" y "ss" se usan para extraer el año, mes, día, hora, minutos y segundos para el tipo datetime.

El formato debe empezar en la posición de la primera clave de partición hasta el final de la ruta de acceso del archivo. Por ejemplo, dada la ruta de acceso '/Accounts/2019/01/01/data.csv' donde la partición es por nombre y hora del departamento, partition_format='/{Department}/{PartitionDate:aaaa/MM/dd}/data.csv' crea una columna de cadena 'Department' con el valor 'Accounts' y una columna datetime 'PartitionDate' con el valor '2019-01-01'.

extract_columns_from_partition_format(partition_format)

Parámetros

partition_format
str
Requerido

Formato de partición que se va a usar para extraer datos en columnas

Devoluciones

MLTable cuyo formato de partición está establecido en formato dado

Tipo de valor devuelto

filter

Filtra los datos, dejando solo los registros que coinciden con la expresión especificada.

filter(expression)

Parámetros

expression
string
Requerido

La expresión que se va a evaluar.

Devoluciones

MLTable después del filtro

Tipo de valor devuelto

Comentarios

Las expresiones se inician indexando la tabla mltable con el nombre de una columna. Admiten una variedad de funciones y operadores, y se pueden combinar mediante operadores lógicos. La expresión resultante se evaluará de forma diferida para cada registro cuando se produzca una extracción de datos y no cuando se define.


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

get_partition_count

Devuelve el número de particiones de datos subyacentes a los datos asociados a esta MLTable.

get_partition_count() -> int

Devoluciones

particiones de datos en esta mlTable

Tipo de valor devuelto

int

keep_columns

Agrega un paso de transformación para mantener las columnas especificadas y quitar todas las demás del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Si la columna de MLTable.traits.timestamp_column o columnas de MLTable.traits.index_columns no se mantienen explícitamente, se pasa una excepción UserErrorException.

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

Parámetros

columns
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]
Requerido

columnas de esta mlTable para mantener

Devoluciones

MLTable con paso de transformación agregado

Tipo de valor devuelto

random_split

Divide aleatoriamente esta MLTable en dos MLTables, una que tiene aproximadamente el "porcentaje" de los datos originales de MLTable y el otro que tiene el resto (1-"porcentaje"%).

random_split(percent=0.5, seed=None)

Parámetros

percent
Union[int, float]
Requerido

porcentaje de MLTable entre el que se va a dividir

seed
Optional[int]
Requerido

inicialización aleatoria opcional

Devoluciones

dos MLTables con los datos de mlTable divididos entre ellos por "porcentaje"

Tipo de valor devuelto

<xref:Tuple>[MLTable, MLTable]

save

Guarde esta mlTable como un archivo YAML de MLTable & sus rutas de acceso asociadas a la ruta de acceso del directorio especificada.

Si no se especifica la ruta de acceso , el valor predeterminado es el directorio de trabajo actual. Si la ruta de acceso no existe, se crea. Si la ruta de acceso es remota, el almacén de datos subyacente ya debe existir. Si la ruta de acceso es un directorio local & no es absoluta, se hace absoluta.

Si la ruta de acceso apunta a un archivo, se genera una excepción UserErrorException. Si la ruta de acceso es una ruta de acceso de directorio que ya contiene uno o varios archivos que se guardan (incluido el archivo YAML de MLTable) y la sobrescritura se establece en False o "fail", se genera una excepción UserErrorException. Si la ruta de acceso es remota, las rutas de acceso de los archivos locales que no se proporcionan como una ruta de acceso coubica (ruta de acceso de archivo relativa al directorio desde el que se cargó MLTable) generarán una excepción UserErrorException.

coubicación controla cómo se guardan las rutas de acceso asociadas en la ruta de acceso. Si es True, los archivos se copian en la ruta de acceso junto con el archivo YAML de MLTable como rutas de acceso de archivo relativas. De lo contrario, los archivos asociados no se copian, las rutas de acceso remotas permanecen como dadas y las rutas de acceso locales se realizan en relación con el redireccionamiento de ruta de acceso si es necesario. Tenga en cuenta que False puede dar lugar a archivos YAML de MLTable no con punto y coma que no se recomiendan, además, si la ruta de acceso es remota, se producirá una excepción UserErrorException como redireccionamiento de ruta de acceso relativa no se admite para los URI remotos.

Tenga en cuenta que si MLTable se crea mediante programación con métodos como from_paths() o from_read_delimited_files() con rutas de acceso relativas locales, se supone que la ruta de acceso del directorio MLTable es el directorio de trabajo actual.

Tenga en cuenta al guardar una nueva mlTable & archivos de datos asociados a un directorio con un archivo MLTable existente & archivos de datos asociados que el directorio no está borrado de los archivos existentes antes de guardar los nuevos archivos. Es posible que los archivos de datos ya existentes se conserven después de guardar los nuevos archivos, especialmente si los archivos de datos existentes no tienen nombres que coincidan con los nuevos archivos de datos. Si el nuevo MLTable contiene un designador de patrones en sus rutas de acceso, esto puede alterar involuntariamente MLTable asociando archivos de datos existentes con la nueva MLTable.

Si las rutas de acceso de archivo de esta tabla MLTable apuntan a un archivo existente en la ruta de acceso, pero tienen un URI diferente, si la sobrescritura es "fail" o "skip", el archivo existente no se sobrescribirá (es decir, omitido).

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

Parámetros

path
str
Requerido

ruta de acceso del directorio en la que guardar, de forma predeterminada en el directorio de trabajo actual

colocated
bool
Requerido

Si es True, guarda copias de las rutas de acceso locales de & archivos remotos en esta mlTable en ruta de acceso como rutas de acceso relativas. De lo contrario, no se produce ninguna copia de archivos y las rutas de acceso a archivos remotos se guardan como dadas al archivo YAML de MLTable guardado y las rutas de acceso de archivo locales como rutas de acceso relativas con redirección de ruta de acceso. Si la ruta de acceso es remota & esta mlTable contiene rutas de acceso de archivo locales, se generará una excepción UserErrorException.

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

Cómo se controla el archivo YAML de MLTable existente y los archivos asociados que pueden existir en la ruta de acceso . Las opciones son "sobrescribir" (o True) para reemplazar los archivos existentes, "fail" (o False) para generar un error si ya existe un archivo o "skip" para dejar los archivos existentes tal cual. También se puede establecer con <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
bool
Requerido

muestra el progreso de copia en stdout

if_err_remove_files
bool
Requerido

si se produce algún error durante el guardado, se quitaron los archivos guardados correctamente para que la operación sea atómica.

Devoluciones

esta instancia de MLTable

Tipo de valor devuelto

select_partitions

Agrega un paso de transformación para seleccionar la partición.

select_partitions(partition_index_list)

Parámetros

partition_index_list
list of int
Requerido

lista de índices de partición

Devoluciones

MLTable con el tamaño de partición actualizado

Tipo de valor devuelto

Comentarios

En el fragmento de código siguiente se muestra cómo usar la API de select_partitions para las particiones seleccionadas de mlTable proporcionada.


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

show

Recupera las primeras filas de recuento de esta mlTable como dataframe de Pandas.

show(count=20)

Parámetros

count
int
Requerido

número de filas de la parte superior de la tabla que se van a seleccionar

Devoluciones

primeras filas de recuento de MLTable

Tipo de valor devuelto

<xref:<xref:Pandas Dataframe>>

skip

Agrega un paso de transformación para omitir las primeras filas de recuento de esta mlTable.

skip(count)

Parámetros

count
int
Requerido

número de filas que se van a omitir

Devoluciones

MLTable con paso de transformación agregado

take

Agrega un paso de transformación para seleccionar las primeras filas de recuento de esta mlTable.

take(count=20)

Parámetros

count
int
Requerido

número de filas de la parte superior de la tabla que se van a seleccionar

Devoluciones

MLTable con el paso de transformación "take" agregado

Tipo de valor devuelto

take_random_sample

Agrega un paso de transformación para seleccionar aleatoriamente cada fila de esta MLTable con probabilidad de probabilidad . La probabilidad debe estar en el intervalo [0, 1]. Opcionalmente, puede establecer una inicialización aleatoria.

take_random_sample(probability, seed=None)

Parámetros

probability
Requerido

probabilidad de que se seleccione cada fila

seed
Optional[int]
Requerido

inicialización aleatoria opcional

Devoluciones

MLTable con paso de transformación agregado

Tipo de valor devuelto

to_pandas_dataframe

Cargue todos los registros de las rutas de acceso especificadas en el archivo MLTable en un DataFrame de Pandas.

to_pandas_dataframe()

Devoluciones

Trama de datos de Pandas que contiene los registros de las rutas de acceso de esta mlTable

Tipo de valor devuelto

Comentarios

En el siguiente fragmento de código se muestra cómo usar la API de to_pandas_dataframe para obtener un dataframe de Pandas correspondiente a mlTable proporcionado.


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

validate

Valida si se pueden cargar los datos de esta mlTable, requiere que los orígenes de datos de MLTable sean accesibles desde el proceso actual.

validate()

Devoluciones

None

Tipo de valor devuelto

Atributos

partition_keys

Devuelve las claves de partición.

Devoluciones

Las claves de partición.

Tipo de valor devuelto

paths

Devuelve una lista de diccionarios que contienen las rutas de acceso originales dadas a esta MLTable. Se supone que las rutas de acceso de archivo locales relativas son relativas al directorio desde el que se cargó el archivo YAML de MLTable desde el que se cargó esta instancia de MLTable.

Devoluciones

lista de dicts que contienen rutas de acceso especificadas en MLTable

Tipo de valor devuelto