I am getting “TypeError: 'DataFrame' object is not callable” when I'm trying to iterate over a pandas Dataframe in a Knime python script node

python
#1

Basically I am tyring to iterate over rows in a pandas data frame. This data frame was automatically created in Knime through a python script node.
The name of the data frame is “input_table”.

The dataframe has three columns: Location, URL and Document.

I am gettin this error: TypeError: ‘DataFrame’ object is not callable, when I am trying to loop over rows.

I already looked for similiar problems, but none of the solutions worked for me. This is the code I am using, since the data frame was created automatically.

for index, row in input_table():

   print(row["Document"])
0 Likes

#2

Hi @gnime

Try:

for index, row in input_table.iterrows():
print(row[“Document”])

hope this helps.

gr. Hans

1 Like

#3

Hi Hans,

Thanks for your answer.

When I am tyring this I am getting the error:

ERROR Python Script (1⇒1) 0:13 Execute failed: An exception occured while running the Python kernel. See log for details.

1 Like

#4

Hi @gnime

It works on my machine :upside_down_face: see iterate_row_pythonnode.knwf (12.2 KB)

Maybe this post Python code is successful in the config window but fails when the node is executed helps you out?

gr , Hans

1 Like

#5

Hi Hans,

Thanks I will look into it.
Maybe some additional info:

I am getting the Data from a Database reader.
The target column Database table I am reading from hast 33.000 rows.

The target column “Document” contains the text of .html files in text format.

0 Likes

#6

Hi @gnime,

I created a simple example WF. python_iterate_data_frame.knwf (6.1 KB)
The source of the data should not matter. Are you able to execute any other Python Scrip node? Maybe it is a general problem with your setup. If the attached WF doesn’t work for you, it would be great if you could attach the KNIME log file to your next post.

Hope that helps.

Cheers,
David

4 Likes

#7

Hi Dave,

Thanks for your answer.

My script works now, I just forgot to define an output table.
My problem now is that my code works with a small sample (1400 rows), but does not work with with my full dataset of 33.000 rows.

I am getting the error:

ERROR Python Script (1⇒1) 0:13 Execute failed: An exception occured while running the Python kernel. See log for details.

0 Likes

#8

Could you maybe attach the log file?

0 Likes

#9

Hi Dave,

I copied the log at the moment the error occured.
I hope it helps.

error.txt (78.2 KB)

0 Likes

#10

Hi @gnime,

you seem to be running out of memory Caused by: java.lang.OutOfMemoryError: Java heap space. See here to increase the memory KNIME can use. I hope that fixes the error.

Cheers,
David

4 Likes

#11

Worked like a charm!

Thanks Dave

1 Like