使用itertuples迭代pandas数据帧

时间:2017-04-05 03:20:51

标签: python pandas

我正在使用itertuples迭代一个pandas数据帧。我还想在迭代时捕获行号:

for row in df.itertuples():
    print row['name']

预期产出:

1 larry
2 barry
3 michael

1,2,3是行号。我想避免使用计数器并获取行号。有没有一种简单的方法可以使用熊猫实现这一目标?

3 个答案:

答案 0 :(得分:20)

使用class MyViewController: UIViewController { var webView: WKWebView? override viewDidLoad() { super.viewDidLoad() //... self.webView.scrollView.delegate = self //... } } extension MyViewController: UIScrollViewDelegate { func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) { scrollView.pinchGestureRecognizer?.isEnabled = false } } 时,每行都会获得一个名为itertuples的内容。默认情况下,您可以使用tuple访问该行的索引值。

如果索引值不是您要查找的内容,那么您可以使用row.Index

enumerate

for i, row in enumerate(df.itertuples(), 1): print(i, row.name) 取代了丑陋的反建构

答案 1 :(得分:4)

for row in df.itertuples():
    print(getattr(row, 'Index'), getattr(row, 'name'))

答案 2 :(得分:2)

对于不是有效Python名称的列名称,请使用:

for row in df.itertuples(index=False):
    print(row[df.columns.get_loc('My nasty - column / name')])

如果您未指定index=False,则将读取名称前的列。