Python objects are stored as pointers. Normally, however, PyCall displays an object via the Python repr of that object, and only shows the raw pointer when repr throws an exception.
To see what exception is preventing the repr from being displayed, try calling pyrepr(output_dict["df1"]).