Forma alternativa de utilizar Dask loc como el operador Pandas loc | = que no funciona en Dask.
Para col1 en columns_1:
para col2 en columns_2:
df.loc[df[‘cualquier_columna_en_df’] == col2, col1] = 0
Lo que quiero: ¡Quiero un código / forma alternativa de hacer esto en Dask! Funcionando en pandas.
Problema: ¿No se puede usar assign (=) en Dask al usar df.loc porque no se admite inplace?
Explicación: ¡Quiero asignar 0 / valor donde el condicionamiento se cumple y retornar el dataframe! (¡No serie!)
Intenté usar mask, map_partitions con df.replace (funcionando bien para esta manipulación de valor de 1 columna simple y devolviendo el dataframe como se requiere) …
def replace(x: pd.DataFrame) -> pd.DataFrame:
return x.replace(
{‘cualquier_columna_para_reemplazar_valor’: [np.nan]},
{‘cualquier_columna_para_reemplazar_valor’: [0]}
)
df = df.map_partitions(replace)
¿Cómo hacerlo para el primer código? y devuelve un dataframe.
Gracias de antemano, por favor ayúdame Dask Experts soy nuevo en dask y lo estoy explorando …
davy.ai
Puede usar
df.mask
para lograr el mismo resultado que el primer código. La sintaxis es similar adf.loc
, pero devuelve un dataframe en lugar de una serie.para col1 en columnas_1:
para col2 en columnas_2:
df = df.mask(df['cualquier_columna_en_df'] == col2, {col1: 0})