python filas seleccionar - Eliminar fila de DataFrame en Pandas basado en valor de columna





3 Answers

Pero para los futuros usuarios de bypass, puede mencionar que df = df[df.line_race != 0] no hace nada cuando intenta filtrar por None / valores perdidos.

Funciona:

df = df[df.line_race != 0]

No hace nada:

df = df[df.line_race != None]

Funciona:

df = df[df.line_race.notnull()]
columnas un manejo

Tengo el siguiente DataFrame:

             daysago  line_race rating        rw    wrating
 line_date                                                 
 2007-03-31       62         11     56  1.000000  56.000000
 2007-03-10       83         11     67  1.000000  67.000000
 2007-02-10      111          9     66  1.000000  66.000000
 2007-01-13      139         10     83  0.880678  73.096278
 2006-12-23      160         10     88  0.793033  69.786942
 2006-11-09      204          9     52  0.636655  33.106077
 2006-10-22      222          8     66  0.581946  38.408408
 2006-09-29      245          9     70  0.518825  36.317752
 2006-09-16      258         11     68  0.486226  33.063381
 2006-08-30      275          8     72  0.446667  32.160051
 2006-02-11      475          5     65  0.164591  10.698423
 2006-01-13      504          0     70  0.142409   9.968634
 2006-01-02      515          0     64  0.134800   8.627219
 2005-12-06      542          0     70  0.117803   8.246238
 2005-11-29      549          0     70  0.113758   7.963072
 2005-11-22      556          0     -1  0.109852  -0.109852
 2005-11-01      577          0     -1  0.098919  -0.098919
 2005-10-20      589          0     -1  0.093168  -0.093168
 2005-09-27      612          0     -1  0.083063  -0.083063
 2005-09-07      632          0     -1  0.075171  -0.075171
 2005-06-12      719          0     69  0.048690   3.359623
 2005-05-29      733          0     -1  0.045404  -0.045404
 2005-05-02      760          0     -1  0.039679  -0.039679
 2005-04-02      790          0     -1  0.034160  -0.034160
 2005-03-13      810          0     -1  0.030915  -0.030915
 2004-11-09      934          0     -1  0.016647  -0.016647

Necesito eliminar las filas donde line_race es igual a 0 . ¿Cuál es la forma más eficiente de hacer esto?




La respuesta dada es correcta, sin embargo, como alguien de arriba dijo que puedes usar df.query('line_race != 0') que dependiendo de tu problema es mucho más rápido. Altamente recomendado.




Otra forma de hacerlo. Puede que no sea la forma más eficiente, ya que el código parece un poco más complejo que el código mencionado en otras respuestas, pero es una forma alternativa de hacer lo mismo.

  df = df.drop(df[df['line_race']==0].index)



Related