dmvianna dmvianna - 2 months ago 31
Python Question

How to iterate through two pandas columns

In [35]: test = pd.DataFrame({'a':range(4),'b':range(4,8)})

In [36]: test
Out[36]:
a b
0 0 4
1 1 5
2 2 6
3 3 7

In [37]: for i in test['a']:
....: print i
....:
0
1
2
3

In [38]: for i,j in test:
....: print i,j
....:
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ValueError: need more than 1 value to unpack


In [39]: for i,j in test[['a','b']]:
....: print i,j
....:
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ValueError: need more than 1 value to unpack


In [40]: for i,j in [test['a'],test['b']]:
....: print i,j
....:
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ValueError: too many values to unpack

Answer

use DataFrame.itertuples() method:

for a, b in test.itertuples(index=False):
    print a, b