Skip to main content
 首页 » 编程设计

python之Pandas drop 函数在 for 循环中不起作用

2025年05月04日18haluo1

全部! 我对此感到很困惑,而且我一生都无法找出错误。 我正在尝试遍历数据框中的所有字符串并删除不包含字符串“Barry Bonds”的字符串。

到目前为止,我已经设法通过索引删除行:

bb_db.drop(bb_db.index[1]) 

这成功地删除了该索引处的行,但是当我将其放入此 for 循环时:

for i in range(len(bb_db)): 
    if 'Barry Bonds' in bb_db['player_names'][i]: 
        bb_db.drop(bb_db.index[i]) 
        print (i) 

我得到了整个数据帧,即使 i 变量打印出大量索引且 if 语句为真。

谢谢!

请您参考如下方法:

drop 不会改变您当前的 DataFrame,除非您通过 inplace=True 提出要求。

话虽如此,for 循环几乎肯定不是这里最简单的方法。为什么不使用列上的 str 访问器进行 bool 索引,即 str.contains

bb_db[~bb_db.player_names.str.contains('Barry Bonds')]