如何使用Pandas删除python中 Dataframe 的一行?

oxcyiej7  于 2022-10-23  发布在  Python
关注(0)|答案(2)|浏览(280)

我想删除循环中的行。
我试过数据。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_produtorecebimentoordenimei
12d1234513512ijam153
64121714545456656a
xxb16uws

xxb16uws1#

从正在迭代的集合中删除项可能很困难。行移位1,索引仍然使用集合的原始位置和大小,索引错误的行,最终溢出。此外,在panda中迭代行相对昂贵。由于Pandas的目标是在整个阵列上广播一个操作,因此通常有更好的方法。
在这里,您可以选择所需的行,执行操作,然后删除其中的许多行。我无法从你的例子中看出你想从 Dataframe 中使用什么数据,所以这只是对最终代码的估计,

selected_imei = data[data["ordem"] == ordem]["imei"]
for imei in selected_imei:
    print("do stuff with", imei)
data.drop(selected_imei.index)
uqjltbpv

uqjltbpv2#

Pandas drop方法不是默认的就地执行操作,但它返回一个结果 Dataframe ;要更改此设置,请使用inplace标志。指定要放置的轴也是一个好主意;它默认为0(行),但使代码更清晰。最后,您的drop应该如下所示:
data.drop(i, axis=0, inplace=True)

相关问题