es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Iterar sobre columnas y filas en un dataframe de Pandas y convertir cadena a flotante.

Tengo el siguiente dataframe:

col1  col2  col3
25,4  34,2  33,2
33,25 30.2  10,2
.................

y quiero iterar sobre todas las columnas y filas de este conjunto de datos.

df_range = len(df)

for column in df:
  for i in range(df_range):
    str.replace('.', ',').astype(float)
    print(df)

y obtengo el siguiente error:

TypeError                                 Traceback (most recent call last)

<ipython-input-38-47f6c96d2e67> in <module>()
      3 for column in df2:
      4   for i in range(df_range):
----> 5     str.replace('.', ',').astype(float)
      6 
      7     print(df)

TypeError: replace() necesita al menos 2 argumentos (solo se proporcionó 1)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error se debe a no especificar correctamente en qué cadena aplicar el método replace. Además, el método astype() debe aplicarse a una columna o celda específica del dataframe, no al objeto de dataframe completo.

    Una versión corregida del código sería:

    df_range = len(df)
    
    for column in df:
        for i in range(df_range):
            df[column].iloc[i] = df[column].iloc[i].replace(',', '.').astype(float)
    
    print(df)
    

    Este código itera sobre cada columna y fila del dataframe, reemplaza las comas por puntos y convierte los valores al tipo de dato float. El código corregido hace referencia a celdas específicas en el dataframe a través del método .iloc, y especifica la columna que se está modificando mediante el uso de df[column].

Comments are closed.