Creo que esto debería ser simple, pero probé algunas ideas y ninguna de ellas funcionó:
last_row = len(DF) DF = DF.drop(DF.index[last_row]) #<-- fail!
Intenté usar índices negativos pero eso también lleva a errores. Todavía debo estar malinterpretando algo básico.
Gracias por adelantado.
Para soltar las últimas n filas:
df.drop(df.tail(n).index,inplace=True) # drop last n rows
Por la misma vena, puedes soltar las primeras n filas:
df.drop(df.head(n).index,inplace=True) # drop first n rows
Dado que la posición del índice en Python está basada en 0, en realidad no habrá un elemento en el index
en la ubicación correspondiente a len(DF)
. Necesitas que sea last_row = len(DF) - 1
:
In [49]: dfrm Out[49]: ABC 0 0.120064 0.785538 0.465853 1 0.431655 0.436866 0.640136 2 0.445904 0.311565 0.934073 3 0.981609 0.695210 0.911697 4 0.008632 0.629269 0.226454 5 0.577577 0.467475 0.510031 6 0.580909 0.232846 0.271254 7 0.696596 0.362825 0.556433 8 0.738912 0.932779 0.029723 9 0.834706 0.002989 0.333436 [10 rows x 3 columns] In [50]: dfrm.drop(dfrm.index[len(dfrm)-1]) Out[50]: ABC 0 0.120064 0.785538 0.465853 1 0.431655 0.436866 0.640136 2 0.445904 0.311565 0.934073 3 0.981609 0.695210 0.911697 4 0.008632 0.629269 0.226454 5 0.577577 0.467475 0.510031 6 0.580909 0.232846 0.271254 7 0.696596 0.362825 0.556433 8 0.738912 0.932779 0.029723 [9 rows x 3 columns]
Sin embargo, es mucho más simple escribir DF[:-1]
.
DF[:-n]
donde n es el último número de filas para soltar.
Para soltar la última fila:
DF = DF[:-1]
drop devuelve una nueva matriz, por eso se atragantó en la publicación de og; Tenía un requisito similar para cambiar el nombre de algunos encabezados de columnas y eliminar algunas filas debido a un archivo csv con formato incorrecto convertido a Dataframe, así que después de leer esta publicación utilicé:
newList = pd.DataFrame(newList) newList.columns = ['Area', 'Price'] print(newList) # newList = newList.drop(0) # newList = newList.drop(len(newList)) newList = newList[1:-1] print(newList)
y funcionó muy bien, como se puede ver con las dos líneas comentadas arriba, probé el método drop. () y funcionó pero no tan kool y legible como usar [n: -n], espero que ayude a alguien, gracias.
stats = pd.read_csv (“C: \ py \ programs \ second pandas \ ex.csv”)
stats (salida)
ABC 0 0.120064 0.785538 0.465853 1 0.431655 0.436866 0.640136 2 0.445904 0.311565 0.934073 3 0.981609 0.695210 0.911697 4 0.008632 0.629269 0.226454 5 0.577577 0.467475 0.510031 6 0.580909 0.232846 0.271254 7 0.696596 0.362825 0.556433 8 0.738912 0.932779 0.029723 9 0.834706 0.002989 0.333436
solo usa skipfooter = 1
skipfooter: int, por defecto 0
Número de líneas al final del archivo para saltar
stats_2 = pd.read_csv("C:\\py\\programs\\second pandas\\ex.csv", skipfooter=1, engine='python')
stats_2 (Salida)
ABC 0 0.120064 0.785538 0.465853 1 0.431655 0.436866 0.640136 2 0.445904 0.311565 0.934073 3 0.981609 0.695210 0.911697 4 0.008632 0.629269 0.226454 5 0.577577 0.467475 0.510031 6 0.580909 0.232846 0.271254 7 0.696596 0.362825 0.556433 8 0.738912 0.932779 0.029723