Description
Code Sample, a copy-pastable example if possible
>>> ser = pd.Series([f for f in 'abcdefgh'])
>>> ser.drop(ser == 'c')
2 c
3 d
4 e
5 f
6 g
7 h
dtype: object
Problem description
I see what is going here, ser == 'c'
results in a list of True/False (meaning 0 and 1), so it drops the 0 and 1 indices. However, this is a completely unexpected result. This should at least raise an exception. I would be happy with an error, but boolean mask support would result in a much more cleaner and simpler syntax than:
ser.drop(ser[ser == 'c'].index)
Expected Output
Raising an exception or dropping by boolean mask:
0 a
1 b
3 d
4 e
5 f
6 g
7 h
dtype: object
Output of pd.show_versions()
INSTALLED VERSIONS
commit: None
pandas: 0.19.2
nose: None
pip: 9.0.1
setuptools: 36.6.0
Cython: None
numpy: 1.11.0
scipy: 0.18.1
statsmodels: None
xarray: None
IPython: 6.2.1
sphinx: 1.6.4
patsy: None
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: None
tables: None
numexpr: None
matplotlib: 2.1.0
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.9.6
boto: None
pandas_datareader: None