我知道pandas.DataFrame.iterrows
允许逐行迭代DataFrame。是否有可能在迭代中跳回来?
例如,我有十个项目的列表。迭代光标位于#8。出于某种原因,我想跳回到例如#5然后继续。
(怎么样)我可以这样做吗?
我已经尝试搜索类似的问题,但遗憾的是无济于事。
答案 0 :(得分:1)
我使用iloc
这是基于整数的索引来进行索引选择,这是因为你的索引可能不是基于0的int64但它仍然可以工作,例如:
In [103]:
df = pd.DataFrame({'a':np.arange(10)}, index = list('abcdefghij'))
for i in range(len(df)):
if i != 0 and i % 5 == 0:
print(df.iloc[i-3])
else:
print(df.iloc[i])
a 0
Name: a, dtype: int32
a 1
Name: b, dtype: int32
a 2
Name: c, dtype: int32
a 3
Name: d, dtype: int32
a 4
Name: e, dtype: int32
a 2
Name: c, dtype: int32
a 6
Name: g, dtype: int32
a 7
Name: h, dtype: int32
a 8
Name: i, dtype: int32
a 9
Name: j, dtype: int32