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.objectMLTable
Constructor
MLTable()
Métodos
convert_column_types |
Agrega un paso de transformación para convertir las columnas especificadas en sus respectivos tipos nuevos especificados.
|
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
Nombre | Description |
---|---|
column_types
Requerido
|
Diccionario de columnas: tipos que el usuario desea convertir |
Devoluciones
Tipo | Description |
---|---|
MLTable con paso de transformación agregado |
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
Nombre | Description |
---|---|
columns
Requerido
|
columnas que se van a quitar de esta mlTable |
Devoluciones
Tipo | Description |
---|---|
MLTable con paso de transformación agregado |
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
Nombre | Description |
---|---|
partition_format
Requerido
|
Formato de partición que se va a usar para extraer datos en columnas |
Devoluciones
Tipo | Description |
---|---|
MLTable cuyo formato de partición está establecido en formato dado |
filter
Filtra los datos, dejando solo los registros que coinciden con la expresión especificada.
filter(expression)
Parámetros
Nombre | Description |
---|---|
expression
Requerido
|
La expresión que se va a evaluar. |
Devoluciones
Tipo | Description |
---|---|
MLTable después del filtro |
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
Tipo | Description |
---|---|
particiones de datos en 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.
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parámetros
Nombre | Description |
---|---|
columns
Requerido
|
columnas de esta mlTable para mantener |
Devoluciones
Tipo | Description |
---|---|
MLTable con paso de transformación agregado |
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
Nombre | Description |
---|---|
percent
Requerido
|
porcentaje de MLTable entre el que se va a dividir |
seed
Requerido
|
inicialización aleatoria opcional |
Devoluciones
Tipo | Description |
---|---|
dos MLTables con los datos de mlTable divididos entre ellos por "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).
save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)
Parámetros
Nombre | Description |
---|---|
path
Requerido
|
ruta de acceso del directorio en la que guardar, de forma predeterminada en el directorio de trabajo actual |
colocated
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
Requerido
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
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
Requerido
|
muestra el progreso de copia en stdout |
if_err_remove_files
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
Tipo | Description |
---|---|
esta instancia de MLTable |
select_partitions
Agrega un paso de transformación para seleccionar la partición.
select_partitions(partition_index_list)
Parámetros
Nombre | Description |
---|---|
partition_index_list
Requerido
|
lista de índices de partición |
Devoluciones
Tipo | Description |
---|---|
MLTable con el tamaño de partición actualizado |
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
Nombre | Description |
---|---|
count
Requerido
|
número de filas de la parte superior de la tabla que se van a seleccionar |
Devoluciones
Tipo | Description |
---|---|
<xref:Pandas> <xref:Dataframe>
|
primeras filas de recuento de MLTable |
skip
Agrega un paso de transformación para omitir las primeras filas de recuento de esta mlTable.
skip(count)
Parámetros
Nombre | Description |
---|---|
count
Requerido
|
número de filas que se van a omitir |
Devoluciones
Tipo | Description |
---|---|
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
Nombre | Description |
---|---|
count
Requerido
|
número de filas de la parte superior de la tabla que se van a seleccionar |
Devoluciones
Tipo | Description |
---|---|
MLTable con el paso de transformación "take" agregado |
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
Nombre | Description |
---|---|
probability
Requerido
|
probabilidad de que se seleccione cada fila |
seed
Requerido
|
inicialización aleatoria opcional |
Devoluciones
Tipo | Description |
---|---|
MLTable con paso de transformación agregado |
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
Tipo | Description |
---|---|
Trama de datos de Pandas que contiene los registros de las rutas de acceso de esta mlTable |
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
Tipo | Description |
---|---|
None |
Atributos
partition_keys
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
Tipo | Description |
---|---|
lista de dicts que contienen rutas de acceso especificadas en MLTable |