我正在使用itertuples迭代一个pandas数据帧.我也想捕获行号.迭代时:
示例代码:
for row in df.itertuples():
print row['name']
Run Code Online (Sandbox Code Playgroud)
预期产量:
1 larry
2 barry
3 michael
Run Code Online (Sandbox Code Playgroud)
这里1,2,3是行号.我想避免使用计数器并获取行号.有没有简单的方法来实现这个使用熊猫?
piR*_*red 28
使用时,每行都会itertuples得到一个名字tuple.默认情况下,您可以使用访问该行的索引值row.Index.
如果索引值不是您要查找的值,那么您可以使用 enumerate
for i, row in enumerate(df.itertuples(), 1):
print(i, row.name)
Run Code Online (Sandbox Code Playgroud)
enumerate 取代丑陋的反建构
小智 9
for row in df.itertuples():
print(getattr(row, 'Index'), getattr(row, 'name'))
Run Code Online (Sandbox Code Playgroud)
对于不是有效 Python 名称的列名称,请使用:
for i, row in enumerate(df.itertuples(index=False)):
print(str(i) + row[df.columns.get_loc('My nasty - column / name')])
Run Code Online (Sandbox Code Playgroud)
如果不指定index=False,则将读取已命名的列之前的列。