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

import datetime
import pandas as pd

series = pd.Series(
list(range(8760)),
index=pd.date_range('2018/01/01', periods=8760, freq='H', tz='Europe/Berlin')
)

# trying to drop first day
series = series.drop(
series.index[series.index < datetime.datetime(year=2018, month=1, day=2)]
)

# yields AmbiguousTimeError

File "pandas/_libs/tslib.pyx", line 3593, in pandas._libs.tslib.tz_localize_to_utc
pytz.exceptions.AmbiguousTimeError: Cannot infer dst time from Timestamp('2018-10-28 02:00:00'), try using the 'ambiguous' argument

Problem description

I can't use drop on series that have a timezone aware datetime index. For me, it is not understandable why the error displayed above is raised.

The workaround I found is:

find the positions to drop

convert the series to UTC

drop

convert back to original timezone

import datetime
import pandas as pd

series = pd.Series(
list(range(8760)),
index=pd.date_range('2018/01/01', periods=8760, freq='H', tz='Europe/Berlin')
)

positions_to_drop = series.index < datetime.datetime(year=2018, month=1, day=2)

tz = series.index.tz
series.index = series.index.tz_convert('UTC')
series = series.drop(
series.index[positions_to_drop]
)
series.index = series.index.tz_convert(tz)

Expected Output

No error. And the result the previous snippet yields.

Output of pd.show_versions()

INSTALLED VERSIONS

commit: None

python: 3.6.4.final.0

python-bits: 64

OS: Darwin

OS-release: 17.4.0

machine: x86_64

processor: i386

byteorder: little

LC_ALL: None

LANG: None

LOCALE: de_DE.UTF-8

pandas: 0.22.0

pytest: 3.4.2

pip: 9.0.1

setuptools: 38.5.2

Cython: None

numpy: 1.14.2

scipy: None

pyarrow: None

xarray: None

IPython: None

sphinx: 1.7.1

patsy: None

dateutil: 2.6.1

pytz: 2018.3

blosc: None

bottleneck: None

tables: None

numexpr: 2.6.4

feather: None

matplotlib: None

openpyxl: None

xlrd: 1.1.0

xlwt: None

xlsxwriter: None

lxml: None

bs4: None

html5lib: None

sqlalchemy: None

pymysql: None

psycopg2: 2.7.4 (dt dec pq3 ext lo64)

jinja2: 2.10

s3fs: None

fastparquet: None

pandas_gbq: None

pandas_datareader: None

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

import pandas as pd
start = pd.Timestamp('201710290100', tz='Europe/Brussels')
end = pd.Timestamp('201710290300', tz='Europe/Brussels')
index = pd.date_range(start=start, end=end, freq='15min')

index.drop(index[0])

AmbiguousTimeError: Cannot infer dst time from Timestamp('2017-10-29 02:00:00'), try using the 'ambiguous' argument

Problem description

When dropping from a localized DateTimeIndex, behind the scenes the index is converted to UTC, the drop is performed, and then it is converted back to the original timezone. (This is what I make of the traceback).

This second conversion is ambiguous because the original index contains a DST change.

Expected Output

Output of index.drop(index[0])

DatetimeIndex(['2017-10-29 01:15:00+02:00', '2017-10-29 01:30:00+02:00',

'2017-10-29 01:45:00+02:00', '2017-10-29 02:00:00+02:00',

'2017-10-29 02:15:00+02:00', '2017-10-29 02:30:00+02:00',

'2017-10-29 02:45:00+02:00', '2017-10-29 02:00:00+01:00',

'2017-10-29 02:15:00+01:00', '2017-10-29 02:30:00+01:00',

'2017-10-29 02:45:00+01:00', '2017-10-29 03:00:00+01:00'],

dtype='datetime64[ns, Europe/Brussels]', freq='15T')