我是 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)
我怎样才能得到输出:
0
1
2
3
谢谢!
最佳答案
如果您需要行号而不是索引,您应该:
- 在循环中使用
enumerate
作为计数器。 - 不要提取索引,请参阅下面的选项。
选项 1
在大多数情况下,出于性能原因,您应该尝试使用 df.itertuples
而不是 df.iterrows
。您可以指定 index=False
,以便第一个元素不是索引。
for idx, row in enumerate(df.itertuples(index=False)):
# do something
df.itertuples
为每一行返回一个命名元组。
选项 2
使用df.iterrows
.这比较麻烦,因为您需要分离出一个未使用的变量。此外,这与 itertuples
相比效率低下。
for idx, (_, row) in enumerate(df.iterrows()):
# do something
关于python - 从 Pandas 中的 iterrows() 获取行位置而不是行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50485174/