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

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

我试过使用负号,但这也会导致错误。我肯定还是误解了一些基本的东西。


当前回答

使用索引

df.iloc[:-1,:]

这就是iloc存在的原因。你也可以用head或tail。

其他回答

我发现的最好的解决方案是不(不一定?)完全复制

df.drop(df.index[-1], inplace=True)

当然,你可以简单地省略inplace=True来创建一个新的数据框架,你也可以通过简单地截取df的切片轻松地删除最后N行。指数(df。index[-N:]删除最后N行)。因此,这种方法不仅简洁,而且非常灵活。

DF[:-n]

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

删除最后一行:

DF = DF[:-1]

使用索引

df.iloc[:-1,:]

这就是iloc存在的原因。你也可以用head或tail。

删除最后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
stats = pd.read_csv("C:\\py\\programs\\second pandas\\ex.csv")

统计数据输出:

       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

只需使用skipfooter=1

Skipfooter: int,默认为0 文件底部要跳过的行数

stats_2 = pd.read_csv("C:\\py\\programs\\second pandas\\ex.csv", skipfooter=1, engine='python')

stats_2的输出

       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