如何删除pandas datafram的最后一行数据

2024-04-25 17:51:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我认为这应该很简单,但我尝试了一些想法,但没有一个奏效:

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

我试着使用负指数,但这也会导致错误。我一定还是误会了一些基本的东西。

提前谢谢。


Tags: dfindexlen错误指数droprowfail
3条回答

由于Python中的索引定位是基于0的,因此在index中对应于len(DF)的位置实际上不会有元素。你需要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]

然而,编写DF[:-1]要简单得多。

要删除最后n行:

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

同样,您可以删除前n行:

df.drop(df.head(n).index,inplace=True) # drop first n rows
DF[:-n]

其中n是要删除的最后行数。

要删除最后一行:

DF = DF[:-1]

相关问题 更多 >