|
6 | 6 | from pandas import ordered_merge as merge_ordered
|
7 | 7 |
|
8 | 8 |
|
9 |
| -#---------------------------------------------------------------------- |
| 9 | +# ---------------------------------------------------------------------- |
10 | 10 | # Append
|
11 | 11 |
|
12 | 12 | class Append(object):
|
@@ -35,7 +35,7 @@ def time_append_mixed(self):
|
35 | 35 | self.mdf1.append(self.mdf2)
|
36 | 36 |
|
37 | 37 |
|
38 |
| -#---------------------------------------------------------------------- |
| 38 | +# ---------------------------------------------------------------------- |
39 | 39 | # Concat
|
40 | 40 |
|
41 | 41 | class Concat(object):
|
@@ -120,7 +120,7 @@ def time_f_ordered_axis1(self):
|
120 | 120 | concat(self.frames_f, axis=1, ignore_index=True)
|
121 | 121 |
|
122 | 122 |
|
123 |
| -#---------------------------------------------------------------------- |
| 123 | +# ---------------------------------------------------------------------- |
124 | 124 | # Joins
|
125 | 125 |
|
126 | 126 | class Join(object):
|
@@ -202,7 +202,7 @@ def time_join_non_unique_equal(self):
|
202 | 202 | (self.fracofday * self.temp[self.fracofday.index])
|
203 | 203 |
|
204 | 204 |
|
205 |
| -#---------------------------------------------------------------------- |
| 205 | +# ---------------------------------------------------------------------- |
206 | 206 | # Merges
|
207 | 207 |
|
208 | 208 | class Merge(object):
|
@@ -257,7 +257,31 @@ def time_i8merge(self):
|
257 | 257 | merge(self.left, self.right, how='outer')
|
258 | 258 |
|
259 | 259 |
|
260 |
| -#---------------------------------------------------------------------- |
| 260 | +class MergeCategoricals(object): |
| 261 | + goal_time = 0.2 |
| 262 | + |
| 263 | + def setup(self): |
| 264 | + self.left_object = pd.DataFrame( |
| 265 | + {'X': np.random.choice(range(0, 10), size=(10000,)), |
| 266 | + 'Y': np.random.choice(['one', 'two', 'three'], size=(10000,))}) |
| 267 | + |
| 268 | + self.right_object = pd.DataFrame( |
| 269 | + {'X': np.random.choice(range(0, 10), size=(10000,)), |
| 270 | + 'Z': np.random.choice(['jjj', 'kkk', 'sss'], size=(10000,))}) |
| 271 | + |
| 272 | + self.left_cat = self.left_object.assign( |
| 273 | + Y=self.left_object['Y'].astype('category')) |
| 274 | + self.right_cat = self.right_object.assign( |
| 275 | + Z=self.right_object['Z'].astype('category')) |
| 276 | + |
| 277 | + def time_merge_object(self): |
| 278 | + merge(self.left_object, self.right_object, on='X') |
| 279 | + |
| 280 | + def time_merge_cat(self): |
| 281 | + merge(self.left_cat, self.right_cat, on='X') |
| 282 | + |
| 283 | + |
| 284 | +# ---------------------------------------------------------------------- |
261 | 285 | # Ordered merge
|
262 | 286 |
|
263 | 287 | class MergeOrdered(object):
|
@@ -332,7 +356,7 @@ def time_multiby(self):
|
332 | 356 | merge_asof(self.df1e, self.df2e, on='time', by=['key', 'key2'])
|
333 | 357 |
|
334 | 358 |
|
335 |
| -#---------------------------------------------------------------------- |
| 359 | +# ---------------------------------------------------------------------- |
336 | 360 | # data alignment
|
337 | 361 |
|
338 | 362 | class Align(object):
|
|
0 commit comments