Issue 1:
Code Sample

import pandas as pd
import numpy as np

print pd.isnull(['abacaba', np.nan]) # [False, False]
print pd.isnull(pd.Series(['abacaba', np.nan])).values # [False, True]

Problem description

Inconsistent behavior.

The call pd.isnull(pd.Series(['abacaba', np.nan])).values returns [False, True],

but pd.isnull(['abacaba', np.nan]) returns [False, False], which is counter-intuitive.

np.nan must be detected as null in both cases.

Expected Output

[False, True]
[False, True]

Output of pd.show_versions()

INSTALLED VERSIONS

commit: None

python: 2.7.11.final.0

python-bits: 64

OS: Linux

OS-release: 4.4.0-96-generic

machine: x86_64

processor: x86_64

byteorder: little

LC_ALL: None

LANG: en_GB.UTF-8

LOCALE: en_GB.UTF-8

pandas: 0.20.3

pytest: None

pip: 9.0.1

setuptools: 35.0.1

Cython: 0.24

numpy: 1.13.3

scipy: 0.18.1

xarray: None

IPython: 4.2.0

sphinx: 1.2.2

patsy: 0.4.1

dateutil: 2.6.1

pytz: 2017.2

blosc: None

bottleneck: None

tables: 3.2.2

numexpr: 2.5

feather: None

matplotlib: 1.5.3

openpyxl: None

xlrd: None

xlwt: None

xlsxwriter: None

lxml: None

bs4: 4.5.3

html5lib: 0.999

sqlalchemy: None

pymysql: None

psycopg2: None

jinja2: 2.9.6

s3fs: 0.1.1

pandas_gbq: None

pandas_datareader: None

Issue 2:
Code Sample, a copy-pastable example if possible

Under 0.19.1 and latest master:

In [19]: dr = pd.date_range("20161123 00:00", "20161123 02:00", freq="H")

In [20]: tdr = pd.timedelta_range("1 minute", "3 minutes", freq="T")

In [21]: dr + tdr
Out[21]:
DatetimeIndex(['2016-11-23 00:01:00', '2016-11-23 01:02:00',
'2016-11-23 02:03:00'],
dtype='datetime64[ns]', freq='61T')

In [22]: dr_tz = pd.date_range("20161123 00:00", "20161123 02:00", freq="H", tz="America/New_York")
...:

In [23]: dr_tz + tdr
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-23-c10d4a537816> in <module>()
----> 1 dr_tz + tdr

C:\Anaconda\envs\bleeding\lib\site-packages\pandas\tseries\base.pyc in __add__(self, other)
617 from pandas.tseries.offsets import DateOffset
618 if isinstance(other, TimedeltaIndex):
--> 619 return self._add_delta(other)
620 elif isinstance(self, TimedeltaIndex) and isinstance(other, Index):
621 if hasattr(other, '_add_delta'):

C:\Anaconda\envs\bleeding\lib\site-packages\pandas\tseries\index.pyc in _add_delta(self, delta)
787 new_values = self._add_delta_td(delta)
788 elif isinstance(delta, TimedeltaIndex):
--> 789 new_values = self._add_delta_tdi(delta)
790 # update name when delta is Index
791 name = com._maybe_match_name(self, delta)

C:\Anaconda\envs\bleeding\lib\site-packages\pandas\tseries\base.pyc in _add_delta_tdi(self, other)
704 mask = (self._isnan) | (other._isnan)
705 new_values[mask] = tslib.iNaT
--> 706 return new_values.view(self.dtype)
707
708 def isin(self, values):

TypeError: data type not understood

Problem description

Given a DatetimeIndex that is not tz-aware, adding a TimedeltaIndex of the same length adds the values elementwise, as one would expect. Given a tz-aware DatetimeIndex, however, adding a TimedeltaIndex results in TypeError. Performing the same operation by iterating over the tz-aware index and adding the values directly works in the expected manner. This behavior did not occur under pandas 0.16.2; however, the above behavior occurs under at least 0.19.1 and the latest master.

Expected Output

Equivalent to the elementwise operation below, which works on latest master:

In [25]: pd.Index([dr_tz[i] + tdr[i] for i in xrange(len(dr_tz))])
Out[25]:
DatetimeIndex(['2016-11-23 00:01:00-05:00', '2016-11-23 01:02:00-05:00',
'2016-11-23 02:03:00-05:00'],
dtype='datetime64[ns, America/New_York]', freq=None)

This also worked under 0.16.2:

In [14]: dr_tz = pd.date_range("20161123 00:00", "20161123 02:00", freq="H", tz="America/New_York")

In [15]: tdr = pd.timedelta_range("1 minute", "3 minutes", freq="T")

In [16]: dr_tz + tdr
Out[16]:
DatetimeIndex(['2016-11-23 00:01:00-05:00', '2016-11-23 01:02:00-05:00',
'2016-11-23 02:03:00-05:00'],
dtype='datetime64[ns]', freq='61T', tz='America/New_York')

Output of pd.show_versions()

In [26]: pd.show_versions()

INSTALLED VERSIONS

commit: None

python: 2.7.12.final.0

python-bits: 64

OS: Windows

OS-release: 7

machine: AMD64

processor: Intel64 Family 6 Model 62 Stepping 4, GenuineIntel

byteorder: little

LC_ALL: None

LANG: None

LOCALE: None.None

pandas: 0.19.0+98.gc045e1d

nose: 1.3.7

pip: 9.0.1

setuptools: 27.2.0

Cython: 0.24.1

numpy: 1.11.2

scipy: 0.18.1

statsmodels: None

xarray: None

IPython: 5.1.0

sphinx: 1.4.8

patsy: None

dateutil: 2.5.3

pytz: 2016.7

blosc: None

bottleneck: None

tables: 3.2.2

numexpr: 2.6.1

matplotlib: 1.5.3

openpyxl: 2.4.0

xlrd: 1.0.0

xlwt: 1.1.2

xlsxwriter: None

lxml: 3.6.4

bs4: None

html5lib: None

httplib2: None

apiclient: None

sqlalchemy: 1.0.13

pymysql: None

psycopg2: None

jinja2: 2.8

boto: None

pandas_datareader: None