全部! 我对此感到很困惑,而且我一生都无法找出错误。 我正在尝试遍历数据框中的所有字符串并删除不包含字符串“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')]
