我想删除循环中的行。
我试过数据。drop(),但它不起作用
for i, receb in enumerate(data['recebimento']):
if ordem == data.iloc[i, data.columns.get_loc('ordem')]:
driver.find_element(By.XPATH,'//*::content"]').send_keys(str(imei))
print(imei)
data.drop(i)
codigo_produto | recebimento | orden | imei |
---|---|---|---|
12d | 123 | 4513512 | ijam153 |
6412 | 171 | 45454 | 56656a |
2条答案
按热度按时间xxb16uws1#
从正在迭代的集合中删除项可能很困难。行移位1,索引仍然使用集合的原始位置和大小,索引错误的行,最终溢出。此外,在panda中迭代行相对昂贵。由于Pandas的目标是在整个阵列上广播一个操作,因此通常有更好的方法。
在这里,您可以选择所需的行,执行操作,然后删除其中的许多行。我无法从你的例子中看出你想从 Dataframe 中使用什么数据,所以这只是对最终代码的估计,
uqjltbpv2#
Pandas drop方法不是默认的就地执行操作,但它返回一个结果 Dataframe ;要更改此设置,请使用
inplace
标志。指定要放置的轴也是一个好主意;它默认为0(行),但使代码更清晰。最后,您的drop应该如下所示:data.drop(i, axis=0, inplace=True)