You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Pandas删除DataFrame中存入变量的指定无值行?

解决方案:从Pandas DataFrame中移除指定无值行

嘿,我懂你碰到的问题啦——dpop根本不是Pandas DataFrame的内置方法,这就是它没效果的原因😅。我们有两种很实用的方式可以帮你从new_df里移除那些存在novalue_df中的行,下面给你一步步说明:

方法一:直接利用反向布尔索引(推荐)

既然你已经写出了筛选目标行的条件,那我们只需要对这个条件取反,就能直接得到移除目标行后的DataFrame:

# 生成移除目标行后的新DataFrame,覆盖原变量
new_df = new_df[~(new_df['age'].isnull() & (new_df['churn'] == False) & (new_df['avgBill'] < 40))]

# 如果想要原地修改原DataFrame(不需要重新赋值),可以这么写:
new_df = new_df.loc[~(new_df['age'].isnull() & (new_df['churn'] == False) & (new_df['avgBill'] < 40)), :]

这里的~符号是取反操作,把原来筛选要删除行的条件,变成筛选要保留行的条件。

方法二:通过novalue_df的索引删除

如果你已经把要删除的行存在了novalue_df里,那可以直接借助它的索引来删除原DataFrame中的对应行:

# 生成新的DataFrame,移除目标行
new_df = new_df.drop(novalue_df.index)

# 要是想直接修改原DataFrame(不生成新变量),加上`inplace=True`参数:
new_df.drop(novalue_df.index, inplace=True)

⚠️ 注意:如果使用inplace=True,会直接修改原new_df,不需要再把结果赋值给它;如果不用这个参数,一定要把返回的新DataFrame赋值给new_df才能生效。

另外补充一句:你可能是把字典的pop()方法和DataFrame的方法搞混了,Pandas里确实没有dpop这个方法哦~

内容的提问来源于stack exchange,提问作者Elena Lanigan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:40:39