如何清空Pandas DataFrame所有行?truncate命令未完全清空求助
解决Pandas无法用truncate清空DataFrame的问题
哦,我太懂这个坑了!Pandas的truncate()方法从设计上就不是用来清空整个DataFrame的——它的作用是根据索引范围截取行,所以你用df.truncate(after=0, before=0)的时候,其实是在告诉它“保留索引从0到0的行”,自然会剩下第0行。
要彻底清空DataFrame同时保留原有的列结构(列名、数据类型),给你几个靠谱的方法:
方法1:直接创建空DataFrame(最直观)
直接基于原DataFrame的列重新生成空表,逻辑清晰,还能完整保留列的元信息:df = pd.DataFrame(columns=df.columns) # 如果需要严格保留数据类型,可以加上dtype参数 df = pd.DataFrame(columns=df.columns, dtype=df.dtypes)方法2:用drop删除所有行
通过删除所有索引对应的行来清空,适合习惯用drop操作的场景:df = df.drop(df.index)方法3:用iloc切片(最简洁)
利用切片语法取一个空的行范围,同样能得到保留列结构的空DataFrame:df = df.iloc[0:0]
这几种方法都能达到你要的“模拟SQL truncate清空表”的效果,选哪个看你个人习惯就行。以后别再用truncate()干这个活啦,它的正确使用场景是比如截取索引10到20之间的行这类需求~
内容的提问来源于stack exchange,提问作者cardamom
相关产品推荐
相关产品推荐

