Get count of positive numbers and sum of negative numbers
The count of positive numbers can be better written as:

sum(n &gt; 0 for n in data)


This will take a lot less memory (which is important if data becomes large), because it uses a generator expression.

Also, are all the checks of isinstance really needed? Is data sometimes not an iterable? And does it sometimes not contain integers? Because if not, then those checks will cost some time.

At the same time, it is usually better to ask for forgiveness than permission, so just use:

try:
    print len(data)
except AttributeError:  # will trigger if `data` has no `len` function
    pass


to be more inclusive and allow any custom iterable.