1

I have the following code:

import io
import pandas as pd

STARTLINES = """
r1: idswam1, 754527542, a396, 3, IR
r2: cbskuf5, 986435614, a952, 9, CH
r3: bksfsa3, 678934987, a396, 4, US
"""

STOPLINES = """
r1: idswam1, 876935874, a396, 3, IR
r2: bksfsa3, 723468723, a396, 4, US
r3: cbskuf5, 993456789, a952, 9, CH
"""

dfstart = pd.read_csv(io.StringIO(STARTLINES),header=None,sep=r"\s*[#:,]", engine='python')
dfstop = pd.read_csv(io.StringIO(STOPLINES),header=None,sep=r"\s*[#:,]", engine='python')

dfstart.drop(dfstart.columns[0],axis=1,inplace=True)
dfstop.drop(dfstop.columns[0],axis=1,inplace=True)

for row in dfstart.itertuples():
   print (row)

The output I get is:

Pandas(Index=0, _1=' idswam1', _2=754527542, _3=' a396', _4=3, _5=' IR')
Pandas(Index=1, _1=' cbskuf5', _2=986435614, _3=' a952', _4=9, _5=' CH')
Pandas(Index=2, _1=' bksfsa3', _2=678934987, _3=' a396', _4=4, _5=' US')

How do I access data from this data structure for each row? I've tried using _1 and '_1' but all give errors. Failed attempts to query have included:

results=dfstart.row[_1].isin(dfstop.row[_1]) 

My goal is to check for each row in dfstart if the values in dfstart[[_1,_3]] are present on a line in dfstop[[_1,_3]] and then store dfstart[_1],dfstart[_3],dfstart[_5] in a new dataframe.

1

1 Answer 1

1

As per Pandas itertuples documentation, this is by design.

pandas.DataFrame.itertuples yields namedtuples, which values are accessible by using integers, like this:

for row in dfstart.itertuples():
    print(row)
    print(row[1], row[2], row[3], row[4], row[5])
    
    # Pandas(Index=0, _1=' idswam1', _2=754527542, _3=' a396', _4=3, _5=' IR')
    # idswam1 754527542  a396 3  IR

    # Pandas(Index=1, _1=' cbskuf5', _2=986435614, _3=' a952', _4=9, _5=' CH')
    # cbskuf5 986435614  a952 9  CH

    # Pandas(Index=2, _1=' bksfsa3', _2=678934987, _3=' a396', _4=4, _5=' US')
    # bksfsa3 678934987  a396 4  US
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.