values missing groupby drop check python string pandas missing-data

missing - ¿Cómo hacer minúsculas en una columna de cadena de datos de python si tiene valores perdidos?



pandas groupby (4)

Copia tu columna de Dataframe y simplemente aplica

df = datos [''x''] newdf = df.str.lower ()

El siguiente código no funciona.

import pandas as pd import numpy as np df=pd.DataFrame([''ONE'',''Two'', np.nan],columns=[''x'']) xLower = df["x"].map(lambda x: x.lower())

¿Cómo debo modificarlo para obtener xLower = [''one'', ''two'', np.nan]? La eficiencia es importante ya que el marco de datos real es enorme.


Otra solución posible, en caso de que la columna no solo tenga cadenas, sino también números, es usar astype(str).str.lower() porque de lo contrario, dado que un número no es una cadena, cuando se baja, devolverá NaN , por lo tanto:

import pandas as pd import numpy as np df=pd.DataFrame([''ONE'',''Two'', np.nan],columns=[''x'']) xLower = df["x"].map(lambda x: x if type(x)!=str else x.lower()) print xLower

entonces nosotros tenemos:

$ print example.py 0 one 1 two 2 NaN Name: x, dtype: object

y no

import pandas as pd import numpy as np df=pd.DataFrame([''ONE'',''Two'', np.nan,2],columns=[''x'']) xSecureLower = df[''x''].astype(str).str.lower() xLower = df[''x''].str.lower()


Una posible solución:

>>> xSecureLower 0 one 1 two 2 NaN 3 2 Name: x, dtype: object

Y un resultado:

>>> xLower 0 one 1 two 2 NaN 3 NaN Name: x, dtype: object

Aunque no estoy seguro de la eficiencia.


utilizar los métodos de cadena vectorizada pandas; Como en la documentación:

estos métodos excluyen valores faltantes / NA automáticamente

.str.lower() es el primer ejemplo allí;

>>> df[''x''].str.lower() 0 one 1 two 2 NaN Name: x, dtype: object