Skip to content

Commit bd021b2

Browse files
committed
core/frame
1 parent 25c6d4c commit bd021b2

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

pandas/core/frame.py

+16-1
Original file line numberDiff line numberDiff line change
@@ -3862,10 +3862,25 @@ def set_index(self, keys, drop=True, append=False, inplace=False,
38623862
-------
38633863
dataframe : DataFrame
38643864
"""
3865-
inplace = validate_bool_kwarg(inplace, 'inplace')
3865+
from pandas import Series
3866+
38663867
if not isinstance(keys, list):
38673868
keys = [keys]
38683869

3870+
col_labels = [x for x in keys
3871+
if not isinstance(x, (Series, Index, MultiIndex,
3872+
list, np.ndarray))]
3873+
if any(x not in self for x in col_labels):
3874+
missing = [x for x in col_labels if x not in self]
3875+
raise KeyError('{}'.format(missing))
3876+
elif len(set(col_labels)) < len(col_labels):
3877+
dup = Series(col_labels)
3878+
dup = list(dup.loc[dup.duplicated()])
3879+
raise ValueError('Passed duplicate column names '
3880+
'to keys: {dup}'.format(dup=dup))
3881+
3882+
inplace = validate_bool_kwarg(inplace, 'inplace')
3883+
38693884
if inplace:
38703885
frame = self
38713886
else:

0 commit comments

Comments
 (0)