File tree 1 file changed +31
-0
lines changed
1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -6482,6 +6482,37 @@ def combiner(x, y):
6482
6482
6483
6483
return expressions .where (mask , y_values , x_values )
6484
6484
6485
+ if self .columns .equals (other .columns ):
6486
+
6487
+ if self .empty and len (other ) == other_idxlen :
6488
+ return other .copy ()
6489
+ if self .index .equals (other .index ):
6490
+ return self .copy ()
6491
+ elif self .empty :
6492
+ return other .copy ()
6493
+ elif other .empty :
6494
+ return self .copy ()
6495
+ else :
6496
+ new_index = self .index .union (other .index )
6497
+ self_index = self .index
6498
+ diff_index = other .index .difference (self .index )
6499
+
6500
+ columns = {}
6501
+
6502
+ for col in self .columns :
6503
+ this_vals = self [col ]
6504
+ other_vals = other [col ][diff_index ]
6505
+ new_dtype = find_common_type ([this_vals .dtype , other_vals .dtype ])
6506
+
6507
+ series = Series ([this_vals .values [0 ]] * len (new_index ), dtype = new_dtype , index = new_index )
6508
+
6509
+ series [self_index ] = this_vals
6510
+ series [diff_index ] = other_vals
6511
+
6512
+ columns [col ] = series
6513
+
6514
+ return DataFrame .from_dict (columns )
6515
+
6485
6516
return self .combine (other , combiner , overwrite = False )
6486
6517
6487
6518
def update (
You can’t perform that action at this time.
0 commit comments