一切! 我对此非常困惑,因为我的生活无法弄清楚错误。 我试图浏览数据框中的所有字符串,并删除那些不包含字符串'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语句为true。
谢谢!
答案 0 :(得分:6)
drop
不会改变您当前的DataFrame,除非您要求inplace=True
。
话虽如此,for循环几乎肯定不是最简单的方法。为什么不在列上使用str
访问者进行布尔索引,即使用str.contains
bb_db[~bb_db.player_names.str.contains('Barry Bonds')]
答案 1 :(得分:0)
这应该有效
for i in range(len(bb_db)):
if 'Barry Bonds' in bb_db['player_names'][i]:
bb_db = bb_db.drop(bb_db.index[i])
# or this works too..
# bb_db.drop(bb_db.index[i], inplace=True)
print (i)