Description
Code Sample, a copy-pastable example if possible
pd.DataFrame(index=pd.MultiIndex.from_product([range(3), range(3)])).drop(5) # Raises
pd.DataFrame(index=pd.MultiIndex.from_product([range(3), range(3)])).drop(5, level=0) # Same operation, does nothing, but silently
Problem description
Since one expects drop()
to always raise an error if the requested label is not found, this can be misleading.
It is not even a matter of partial vs. full labels, since the first example above has a partial label.
Expected Output
The same.
Output of pd.show_versions()
INSTALLED VERSIONS
commit: 2a0e54b
python: 3.5.3.final.0
python-bits: 64
OS: Linux
OS-release: 4.9.0-4-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: it_IT.UTF-8
LOCALE: it_IT.UTF-8
pandas: 0.22.0.dev0+251.g2a0e54bc8.dirty
pytest: 3.2.3
pip: 9.0.1
setuptools: 36.7.0
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
pyarrow: None
xarray: None
IPython: 6.2.1
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: 1.2.0dev
tables: 3.3.0
numexpr: 2.6.1
feather: 0.3.1
matplotlib: 2.0.0
openpyxl: None
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.6
lxml: None
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.0.15
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.2.1