Issue 1:
This works with pandas 0.12:

from ggplot import meat
meat.get(None)
[returns None]

But throws an error in 0.13 (RC):

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-11-86be6a7317b8> in <module>()
----> 1 meat.get(None)

C:\portabel\Python27\lib\site-packages\pandas\core\generic.pyc in get(self, key, default)
961 """
962 try:
--> 963 return self[key]
964 except KeyError:
965 return default

C:\portabel\Python27\lib\site-packages\pandas\core\frame.pyc in __getitem__(self, key)
1626 return self._getitem_multilevel(key)
1627 else:
-> 1628 return self._getitem_column(key)
1629
1630 def _getitem_column(self, key):

C:\portabel\Python27\lib\site-packages\pandas\core\frame.pyc in _getitem_column(self, key)
1633 # get column
1634 if self.columns.is_unique:
-> 1635 return self._get_item_cache(key)
1636
1637 # duplicate columns & possible reduce dimensionaility

C:\portabel\Python27\lib\site-packages\pandas\core\generic.pyc in _get_item_cache(self, item)
972 res = cache.get(item)
973 if res is None:
--> 974 values = self._data.get(item)
975 res = self._box_item_values(item, values)
976 cache[item] = res

C:\portabel\Python27\lib\site-packages\pandas\core\internals.pyc in get(self, item)
2737 if isnull(item):
2738 indexer = np.arange(len(self.items))[isnull(self.items)]
-> 2739 return self.get_for_nan_indexer(indexer)
2740
2741 _, block = self._find_block(item)

C:\portabel\Python27\lib\site-packages\pandas\core\internals.pyc in get_for_nan_indexer(self, indexer)
2789 indexer = indexer.item()
2790 else:
-> 2791 raise ValueError("cannot label index with a null key")
2792
2793 # take a nan indexer and return the values

ValueError: cannot label index with a null key

Not sure if that is intentional as this broke some code in the facet_wrap in ggplot (which now will get some update against this :-) )

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

>>> items
item name
store1 dress V
store2 food A
store2 water C

CASE 1 : axis set to column and given a value which is not available in the structure. Gives ValueError.

>>> items.drop('abcd',axis=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 2530, in drop
obj = obj._drop_axis(labels, axis, level=level, errors=errors)
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 2562, in _drop_axis
new_axis = axis.drop(labels, errors=errors)
File "/usr/local/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 3744, in drop
labels[mask])
ValueError: labels ['abcd'] not contained in axis

CASE 2 : axis set to row, and given a value which is not available in structure should behave in the same way as the above case does.

Instead it just prints the structure table. Shouldn’t it be throwing ValueError ?

>>> items.drop('abcd',axis=0)
item name
store1 dress V
store2 food A
store2 water C
>>>

Problem description

When provided invalid column name(axis=1) it throws "ValueError". Same happens with row as well(axis=0). But when there are duplicate indices in the DataFrame it doesn't.

Expected Output

>>> items.drop('d',axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 2530, in drop
obj = obj._drop_axis(labels, axis, level=level, errors=errors)
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 2562, in _drop_axis
new_axis = axis.drop(labels, errors=errors)
File "/usr/local/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 3744, in drop
labels[mask])
ValueError: labels ['d'] not contained in axis

Output of pd.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.4.final.0
python-bits: 64
OS: Darwin
OS-release: 17.3.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: en_AU.UTF-8
LOCALE: en_AU.UTF-8

pandas: 0.22.0

pytest: None

pip: 9.0.1

setuptools: 36.5.0

Cython: 0.27.3

numpy: 1.13.3

scipy: None

pyarrow: None

xarray: None

IPython: None

sphinx: None

patsy: None

dateutil: 2.6.1

pytz: 2017.3

blosc: None

bottleneck: None

tables: None

numexpr: None

feather: None

matplotlib: None

openpyxl: None

xlrd: None

xlwt: None

xlsxwriter: None

lxml: None

bs4: None

html5lib: None

sqlalchemy: None

pymysql: None

psycopg2: None

jinja2: None

s3fs: None

fastparquet: None

pandas_gbq: None

pandas_datareader: None