lea*_*ner 7 python for-loop python-3.x pandas
我是 stackoverflow 的新手,我进行了研究,但没有找到令人满意的答案。
我知道我可以通过使用 df.iterrows() 遍历 df 来获得行索引。但是如果我想获得一个行位置而不是行 idx 呢?我可以使用什么方法?
我正在处理的示例代码如下:
df = pd.DataFrame({'month': ['Jan', 'Feb', 'March', 'April'],
'year': [2012, 2014, 2013, 2014],
'sale':[55, 40, 84, 31]})
df = df.set_index('month')
for idx, value in df.iterrows():
print(idx)
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到输出:
0
1
2
3
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果您需要行号而不是索引,您应该:
enumerate一个循环内的计数器。选项1
在大多数情况下,出于性能原因,您应该尝试使用df.itertuples而不是df.iterrows. 您可以指定index=False第一个元素不是索引。
for idx, row in enumerate(df.itertuples(index=False)):
# do something
Run Code Online (Sandbox Code Playgroud)
df.itertuples 为每一行返回一个命名元组。
选项 2
使用df.iterrows. 这更麻烦,因为您需要分离出未使用的变量。此外,这与itertuples.
for idx, (_, row) in enumerate(df.iterrows()):
# do something
Run Code Online (Sandbox Code Playgroud)