我有一个数据框 df
Name dist
aaaa 10
bbbb 11
cccc 41
dddd 77
我想删除距离小于 10 的行到下一行。预期输出为
Name dist
aaaa 10
cccc 41
dddd 77
为此,我使用了以下代码
>>> for idx,row in df.iterrows():
... if idx < df.shape[0]-1:
... if ((df.ix[idx+1,'dist_to_TSS']-df.ix[idx+1,'dist_to_TSS'])<10):
... df.drop(row)
...
但是我收到错误。你能帮忙吗?
最佳答案
如果您决定要删除哪些行的标准有点棘手,例如与上一行/下一行中的值相关,那么一种简单的方法是简单地构建要删除的行的索引列表,然后在最后一次性删除它们。 例如
indexes_to_drop = []
for i in df.index:
....
if {make your decision here}:
indexes_to_drop.append(i)
....
df.drop(df.index[indexes_to_drop], inplace=True )
关于python - 在迭代 pandas 数据帧时删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38017007/