如何更改iterrows()的起始索引?

Sai*_*nee 18 python dataframe pandas

我们可以使用以下内容来迭代数据帧的行.

for index, row in df.iterrows():
Run Code Online (Sandbox Code Playgroud)

如果我想从不同的行索引开始怎么办?(不是从第一行开始)?

acu*_*ner 29

我知道这有答案,但为什么不这样做:

for i, r in df.iloc[1:].iterrows():
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢这种方式而不是`islice`。`iterrows` 可能非常昂贵(将行转换为系列);在到达 `islice` 中指定的起始索引之前,您仍然需要生成所有要忽略的行。 (2认同)

imr*_*eal 19

尝试使用 itertools.islice

from itertools import islice

for index, row in islice(df.iterrows(), 1, None):
Run Code Online (Sandbox Code Playgroud)

  • 我认为这比我的方法+1更好 (2认同)

ber*_*nie 5

当然:

for i,(index,row) in enumerate(df.iterrows()):
    if i == 0: continue # skip first row
Run Code Online (Sandbox Code Playgroud)

或者类似的东西:

for i,(index,row) in enumerate(df.iterrows()):
    if i < 5: continue # skip first 5 rows
Run Code Online (Sandbox Code Playgroud)

  • 以下相当于@bernie的答案,但可能更具可读性:`for index, row in itertools.islice(df.iterrows(),5,None):`。 (3认同)