File tree 1 file changed +7
-4
lines changed
1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -3058,16 +3058,19 @@ def renamer(x, suffix: str | None):
3058
3058
llabels = left ._transform_index (lrenamer )
3059
3059
rlabels = right ._transform_index (rrenamer )
3060
3060
3061
- dups = []
3061
+ dups = set ()
3062
3062
if not llabels .is_unique :
3063
3063
# Only warn when duplicates are caused because of suffixes, already duplicated
3064
3064
# columns in origin should not warn
3065
- dups = llabels [(llabels .duplicated ()) & (~ left .duplicated ())]. tolist ( )
3065
+ dups . update ( llabels [(llabels .duplicated ()) & (~ left .duplicated ())])
3066
3066
if not rlabels .is_unique :
3067
- dups .extend (rlabels [(rlabels .duplicated ()) & (~ right .duplicated ())].tolist ())
3067
+ dups .update (rlabels [(rlabels .duplicated ()) & (~ right .duplicated ())])
3068
+ # Suffix addition creates duplicate to pre-existing column name
3069
+ dups .update (llabels .intersection (right .difference (to_rename )))
3070
+ dups .update (rlabels .intersection (left .difference (to_rename )))
3068
3071
if dups :
3069
3072
raise MergeError (
3070
- f"Passing 'suffixes' which cause duplicate columns { set ( dups ) } is "
3073
+ f"Passing 'suffixes' which cause duplicate columns { dups } is "
3071
3074
f"not allowed." ,
3072
3075
)
3073
3076
You can’t perform that action at this time.
0 commit comments