pandas 如何删除最后一行(不确定索引号数和行数的情况下)?
读入的 pd 不确定会有多少行,最后一行是没用的表格装饰,想删除,对 pandas 不熟,
试着这样:
PageDF = PageDF.append(pd.read_html(PageStr)[4], ignore_index=True)
dfmaxrow = PageDF.shape[0]
PageDF = PageDF.drop([21])
# print(type(dfmaxrow))
# PageDF = PageDF.drop(21, axis=0, inplace=True)
# PageDF = PageDF.drop([21], axis=0, inplace=True)
# PageDF = PageDF.drop([dfmaxrow],axis=0)
PageDF.to_csv(savestblpath,encoding=“utf_8_sig”,header=None,index=0,float_format=None)
注释的方式都是不行,第三行知道行号直接 drop 是没问题的。。。
pandas 如何删除最后一行(不确定索引号数和行数的情况下)?
用 df.iloc[:-1] 就行。
import pandas as pd
# 示例数据
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
print("原数据:")
print(df)
# 删除最后一行
df = df.iloc[:-1]
print("\n删除最后一行后:")
print(df)
iloc 是基于位置的索引,[:-1] 表示选取从开始到倒数第二行的所有数据,自然就排除了最后一行。这个方法不关心索引标签是什么,也不管具体有多少行,直接去掉最后一个位置的数据。
简单说就是切片操作去掉尾巴。
df.drop(df.tail(n).index) 从尾部去掉 n 行
df.dorp(df.head(n).index) 从头去掉 n 行
可以加上 inplace=True 直接修改原 dataFrame,不过函数返回是 None
如果数据结构简单的话,是不是 df[:-1] 就行了…


