我有一个很大的数据框,我想通过该数据框循环并执行基于索引条件的语句。我希望每个循环都更新数据框,以便从数据框中删除在上一个循环中处理的索引,以便在每个下一个循环中,应有较少的迭代行。
df = pd.DataFrame(np.random.random((1000,5)), columns['a','b','c','d','e'])
for index,b,c in zip(df.index, df.b, df.c):
if index%2==0:
pass
df = df.drop(df.index[index])
我要在最后一步中更新数据框。如果 if index%2 == 0:的索引为True,则应将其从数据框中删除,以便在下一次迭代中,将datframe的长度减少一半(在这种情况下)。 这给了我索引范围的错误,这很明显,因为数据帧未正确更新。我该怎么办?
答案 0 :(得分:1)
您应该完成if ... else逻辑
l=[]
for index,b,c in zip(df.index, df.b, df.c):
if index%2==0:
pass
else :
l.append(index)
df=df.drop(l)
df.shape
Out[214]: (500, 5)