Setting values on Series using .loc with a TZ-aware DatetimeIndex fails · Issue #12050 · pandas-dev/pandas (original) (raw)
In [1]: import pandas as pd
In [2]: index = pd.date_range('2011-01-01', '2011-01-02', tz='utc') # without tz='utc' it works
In [3]: index
Out[3]: DatetimeIndex(['2011-01-01', '2011-01-02'], dtype='datetime64[ns, UTC]', freq='D')
In [4]: s = pd.Series(range(2), index=index)
In [5]: s.loc[index] = 5
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-5-992315c98f0d> in <module>()
----> 1 s.loc[index] = 5
/usr/lib/python2.7/dist-packages/pandas/core/indexing.pyc in __setitem__(self, key, value)
114
115 def __setitem__(self, key, value):
--> 116 indexer = self._get_setitem_indexer(key)
117 self._setitem_with_indexer(indexer, value)
118
/usr/lib/python2.7/dist-packages/pandas/core/indexing.pyc in _get_setitem_indexer(self, key)
109
110 try:
--> 111 return self._convert_to_indexer(key, is_setter=True)
112 except TypeError:
113 raise IndexingError(key)
/usr/lib/python2.7/dist-packages/pandas/core/indexing.pyc in _convert_to_indexer(self, obj, axis, is_setter)
1148 mask = check == -1
1149 if mask.any():
-> 1150 raise KeyError('%s not in index' % objarr[mask])
1151
1152 return _values_from_object(indexer)
KeyError: "['2011-01-01T01:00:00.000000000+0100' '2011-01-02T01:00:00.000000000+0100'] not in index"
On python 2.7.11, pandas 0.17.1, linux.