¿Cómo eliminar una fila de un dataframe en función al contenido de una columna?

publicado por: Anonymous

Tengo el siguiente dataframe.

0                                               Línea   Descripción
Product Line:      (RC)                             0             0
000400159559,"DAN HAMBURGUESA 500GR          "    162          (RC)
000400837825,"DAN HAMBURGUESA PRECOCIDA 480G "    162          (RC) 
Product Line:      (RS)                             0             0

Necesito eliminar las filas que comienzen con Product Line, entiendo que tengo que utilizar el código startswith pero no se como enlazarlo para eliminar la respectiva fila.

solución

Tal como se menciona en esta respuesta, la forma más segura de eliminar las filas en función a que una columna no comience con un determinado texto sería:

df[~df['linea'].astype(str).str.startswith('Product Line:')]
  • El astype(str) se puede obviar si tenemos seguridad que la columna es una cadena
  • Con ~ negamos la condición

Ejemplo:

import pandas as pd

lista = [
          ['Product Line:      (RC)', 1],
          ['000400159559,"DAN HAMBURGUESA 500GR          ', 2],
          ['000400837825,"DAN HAMBURGUESA PRECOCIDA 480G "', 3],
          ['Product Line:      (RS)"', 4]
]

df = pd.DataFrame(lista, columns=['linea', 'valor'])
print(df)
print(df[~df['linea'].astype(str).str.startswith('Product Line:')])

                                            linea  valor    
0                         Product Line:      (RC)      1
1   000400159559,"DAN HAMBURGUESA 500GR                2
2  000400837825,"DAN HAMBURGUESA PRECOCIDA 480G "      3
3                        Product Line:      (RS)"      4

                                            linea  valor
1   000400159559,"DAN HAMBURGUESA 500GR                2
2  000400837825,"DAN HAMBURGUESA PRECOCIDA 480G "      3
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *