@@ -2003,7 +2003,11 @@ def __getitem__(self, key):
20032003 return self ._getitem_multilevel (key )
20042004 else :
20052005 # get column
2006- return self ._get_item_cache (key )
2006+ if self .columns .is_unique :
2007+ return self ._get_item_cache (key )
2008+
2009+ # duplicate columns
2010+ return self ._constructor (self ._data .get (key ))
20072011
20082012 def _getitem_slice (self , key ):
20092013 return self ._slice (key , axis = 0 )
@@ -2162,10 +2166,10 @@ def _set_item(self, key, value):
21622166 value = self ._sanitize_column (key , value )
21632167 NDFrame ._set_item (self , key , value )
21642168
2165- def insert (self , loc , column , value ):
2169+ def insert (self , loc , column , value , allow_duplicates = False ):
21662170 """
2167- Insert column into DataFrame at specified location. Raises Exception if
2168- column is already contained in the DataFrame
2171+ Insert column into DataFrame at specified location.
2172+ if allow_duplicates is False, Raises Exception if column is already contained in the DataFrame
21692173
21702174 Parameters
21712175 ----------
@@ -2175,7 +2179,7 @@ def insert(self, loc, column, value):
21752179 value : int, Series, or array-like
21762180 """
21772181 value = self ._sanitize_column (column , value )
2178- self ._data .insert (loc , column , value )
2182+ self ._data .insert (loc , column , value , allow_duplicates = allow_duplicates )
21792183
21802184 def _sanitize_column (self , key , value ):
21812185 # Need to make sure new columns (which go into the BlockManager as new
0 commit comments