Tengo un marco de datos df:
20060930 10.103 NaN 10.103 7.981
20061231 15.915 NaN 15.915 12.686
20070331 3.196 NaN 3.196 2.710
20070630 7.907 NaN 7.907 6.459
Luego quiero seleccionar filas con ciertos números de secuencia que se indican en una lista, supongamos que aquí está [1,3], luego a la izquierda:
20061231 15.915 NaN 15.915 12.686
20070630 7.907 NaN 7.907 6.459
¿Cómo o qué función puede hacer eso?
también puedes usar iloc:
Esto no funcionará si los índices de su marco de datos no se corresponden con el orden de las filas debido a cálculos anteriores. En ese caso use:
... como se sugiere en otras respuestas.
fuente
De otra forma (aunque es un código más largo) pero es más rápido que los códigos anteriores. Compruébelo usando la función% timeit:
PD: averiguas la razón
fuente
df.index.get_level_values(0).isin
paraPara conjuntos de datos grandes, es eficiente en la memoria leer solo las filas seleccionadas a través del
skiprows
parámetro.Ejemplo
Esto ahora devolverá un DataFrame de un archivo que omite todas las filas excepto 1 y 3.
Detalles
De los documentos :
Esta característica funciona en la versión pandas 0.20.0+. Consulte también el número correspondiente y una publicación relacionada .
fuente