2014-11-14 7 views
19

credo che questo dovrebbe essere semplice, ma ho provato un paio di idee e nessuno di loro ha lavorato:Come per cancellare l'ultima riga di dati di un dataframe panda

last_row = len(DF) 
DF = DF.drop(DF.index[last_row]) #<-- fail! 

Ho provato ad utilizzare gli indici negativi ma anche portare agli errori. Devo ancora fraintendere qualcosa di fondamentale.

Grazie in anticipo.

+6

'DF = DF [: - 1]'? – U2EF1

risposta

29

Poiché il posizionamento dell'indice in Python è basato su 0, non ci sarà in realtà un elemento in index nella posizione corrispondente a len(DF). È necessario che, per essere last_row = len(DF) - 1:

In [49]: dfrm 
Out[49]: 
      A   B   C 
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]: 
      A   B   C 
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] 

Tuttavia, è molto più semplice di scrivere solo DF[:-1].

+0

ugh, mi sento stupido! Grazie. –

+1

Si noti che quando si rilascia utilizzando dfrm.index, l'indice dell'ultima riga deve essere univoco, altrimenti tutte le righe con quell'indice vengono eliminate. – FranciscoD

17

Per escludere ultime n righe:

df.drop(df.tail(n).index,inplace=True) # drop last n rows 

In questa stessa ottica, si può cadere prime n righe:

df.drop(df.head(n).index,inplace=True) # drop first n rows 
+0

Bella soluzione ... funziona anche per MultiIndex. –

3
DF[:-n] 

dove n è l'ultimo numero di righe a goccia.

Per escludere l'ultima riga:

DF = DF[:-1] 
Problemi correlati