使用pandas的drop()方法删除DataFrame行无效果且无报错求助
解决pandas drop()删除行后DataFrame无变化的问题
问题出在pandas的drop()方法默认行为上:它不会直接修改原DataFrame,而是返回一个删除指定行后的新DataFrame对象。你执行testdf2.drop([1])后,只是生成了新对象但没保存,所以原testdf2完全没变。
有两种常用解决方法:
直接修改原DataFrame(使用inplace参数)
在drop()里添加inplace=True,让操作直接作用于原数据:data= {"col1":[1, 3, 3,3],"col2":[4,5,6,4],"col3":[7,6,6,8]} testdf2 = pd.DataFrame(data) testdf2.drop([1], inplace=True) testdf2 # 此时输出就是删除索引为1的行后的结果重新赋值变量
把drop()返回的新DataFrame重新赋值给原变量,覆盖旧数据:data= {"col1":[1, 3, 3,3],"col2":[4,5,6,4],"col3":[7,6,6,8]} testdf2 = pd.DataFrame(data) testdf2 = testdf2.drop([1]) testdf2
额外提示:如果要删除多行,直接传入索引列表即可,比如drop([0, 1]);默认axis=0是删除行,若要删列可以指定axis=1或columns参数。
内容的提问来源于stack exchange,提问作者Vernando46
相关产品推荐
相关产品推荐

