pandas 如何删除最后一行(不确定索引号数和行数的情况下)?

2019-05-17 01:14:37 +08:00
 qazwsxkevin
读入的 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 是没问题的。。。
8900 次点击
所在节点    Python
5 条回复
Xs0ul
2019-05-17 01:30:49 +08:00
你后面的报错,要不是因为前面 drop 过了那一行已经没有了,就是
1. 加了 inplace 返回值是 None,加了赋值等于把 PageDF 清空了
2. index 从 0 开始,dfmaxrow 得减一
3. 如果 index 不是自动生成而是从原始数据读取的,可能不是 0 到 n-1 这样的。df.drop(df.index[-1], axis=0)试试
inhzus
2019-05-17 01:31:34 +08:00
necomancer
2019-05-17 01:32:25 +08:00
df.drop(df.tail(n).index) 从尾部去掉 n 行
df.dorp(df.head(n).index) 从头去掉 n 行
可以加上 inplace=True 直接修改原 dataFrame,不过函数返回是 None
necomancer
2019-05-17 01:33:56 +08:00
如果数据结构简单的话,是不是 df[:-1] 就行了...
ec0
2019-05-17 10:28:45 +08:00
PageDF = PageDF[:-1]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/564886

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX