Stefan Ram ha scritto:
jak <nos...@please.ty> wrote or quoted:
Would you show me the path, please?

   I was not able to read xls here, so I used csv instead; Warning:
   the script will overwrite file "file_20240412201813_tmp_DML.csv"!

import pandas as pd

with open( 'file_20240412201813_tmp_DML.csv', 'w' )as out:
     print( '''obj,foo1,foo2,foo3,foo4,foo5,foo6
foo1,aa,ab,zz,ad,ae,af
foo2,ba,bb,bc,bd,zz,bf
foo3,ca,zz,cc,cd,ce,zz
foo4,da,db,dc,dd,de,df
foo5,ea,eb,ec,zz,ee,ef
foo6,fa,fb,fc,fd,fe,ff''', file=out )

df = pd.read_csv( 'file_20240412201813_tmp_DML.csv' )

result = {}

for rownum, row in df.iterrows():
     iterator = row.items()
     _, rowname = next( iterator )
     for colname, value in iterator:
         if value not in result: result[ value ]= []
         result[ value ].append( ( rowname, colname ))

print( result )


In reality what I wanted to achieve was this:

    what = 'zz'
    result = {what: []}

    for rownum, row in df.iterrows():
        iterator = row.items()
        _, rowname = next(iterator)
        for colname, value in iterator:
            if value == what:
                result[what] += [(rowname, colname)]
    print(result)

In any case, thank you again for pointing me in the right direction. I
had lost myself looking for a pandas method that would do this in a
single shot or almost.


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to