Skip to content

Commit 3e467a7

Browse files
committed
fixing rebasing issues
1 parent 8731409 commit 3e467a7

File tree

11 files changed

+56
-2349
lines changed

11 files changed

+56
-2349
lines changed

pandas/core/indexes/base.py

+24-67
Original file line numberDiff line numberDiff line change
@@ -1521,27 +1521,27 @@ def droplevel(self, level=0):
15211521
# The two checks above guarantee that here self is a MultiIndex
15221522

15231523
new_levels = list(self.levels)
1524-
new_labels = list(self.labels)
1524+
new_codes = list(self.codes)
15251525
new_names = list(self.names)
15261526

15271527
for i in levnums:
15281528
new_levels.pop(i)
1529-
new_labels.pop(i)
1529+
new_codes.pop(i)
15301530
new_names.pop(i)
15311531

15321532
if len(new_levels) == 1:
15331533

15341534
# set nan if needed
1535-
mask = new_labels[0] == -1
1536-
result = new_levels[0].take(new_labels[0])
1535+
mask = new_codes[0] == -1
1536+
result = new_levels[0].take(new_codes[0])
15371537
if mask.any():
15381538
result = result.putmask(mask, np.nan)
15391539

15401540
result.name = new_names[0]
15411541
return result
15421542
else:
15431543
from .multi import MultiIndex
1544-
return MultiIndex(levels=new_levels, labels=new_labels,
1544+
return MultiIndex(levels=new_levels, codes=new_codes,
15451545
names=new_names, verify_integrity=False)
15461546

15471547
_index_shared_docs['_get_grouper_for_level'] = """
@@ -3299,14 +3299,14 @@ def _join_multi(self, other, how, return_indexers=True):
32993299
# common levels, ldrop_names, rdrop_names
33003300
dropped_names = ldrop_names + rdrop_names
33013301

3302-
levels, labels, names = (
3302+
levels, codes, names = (
33033303
_restore_dropped_levels_multijoin(self, other,
33043304
dropped_names,
33053305
join_idx,
33063306
lidx, ridx))
33073307

33083308
# Re-create the multi-index
3309-
multi_join_idx = MultiIndex(levels=levels, labels=labels,
3309+
multi_join_idx = MultiIndex(levels=levels, codes=codes,
33103310
names=names, verify_integrity=False)
33113311

33123312
multi_join_idx = multi_join_idx.remove_unused_levels()
@@ -3417,63 +3417,63 @@ def _get_leaf_sorter(labels):
34173417
left_indexer = None
34183418
join_index = left
34193419
else: # sort the leaves
3420-
left_indexer = _get_leaf_sorter(left.labels[:level + 1])
3420+
left_indexer = _get_leaf_sorter(left.codes[:level + 1])
34213421
join_index = left[left_indexer]
34223422

34233423
else:
34243424
left_lev_indexer = ensure_int64(left_lev_indexer)
34253425
rev_indexer = lib.get_reverse_indexer(left_lev_indexer,
34263426
len(old_level))
34273427

3428-
new_lev_labels = algos.take_nd(rev_indexer, left.labels[level],
3429-
allow_fill=False)
3428+
new_lev_codes = algos.take_nd(rev_indexer, left.codes[level],
3429+
allow_fill=False)
34303430

3431-
new_labels = list(left.labels)
3432-
new_labels[level] = new_lev_labels
3431+
new_codes = list(left.codes)
3432+
new_codes[level] = new_lev_codes
34333433

34343434
new_levels = list(left.levels)
34353435
new_levels[level] = new_level
34363436

34373437
if keep_order: # just drop missing values. o.w. keep order
34383438
left_indexer = np.arange(len(left), dtype=np.intp)
3439-
mask = new_lev_labels != -1
3439+
mask = new_lev_codes != -1
34403440
if not mask.all():
3441-
new_labels = [lab[mask] for lab in new_labels]
3441+
new_codes = [lab[mask] for lab in new_codes]
34423442
left_indexer = left_indexer[mask]
34433443

34443444
else: # tie out the order with other
34453445
if level == 0: # outer most level, take the fast route
3446-
ngroups = 1 + new_lev_labels.max()
3446+
ngroups = 1 + new_lev_codes.max()
34473447
left_indexer, counts = libalgos.groupsort_indexer(
3448-
new_lev_labels, ngroups)
3448+
new_lev_codes, ngroups)
34493449

34503450
# missing values are placed first; drop them!
34513451
left_indexer = left_indexer[counts[0]:]
3452-
new_labels = [lab[left_indexer] for lab in new_labels]
3452+
new_codes = [lab[left_indexer] for lab in new_codes]
34533453

34543454
else: # sort the leaves
3455-
mask = new_lev_labels != -1
3455+
mask = new_lev_codes != -1
34563456
mask_all = mask.all()
34573457
if not mask_all:
3458-
new_labels = [lab[mask] for lab in new_labels]
3458+
new_codes = [lab[mask] for lab in new_codes]
34593459

3460-
left_indexer = _get_leaf_sorter(new_labels[:level + 1])
3461-
new_labels = [lab[left_indexer] for lab in new_labels]
3460+
left_indexer = _get_leaf_sorter(new_codes[:level + 1])
3461+
new_codes = [lab[left_indexer] for lab in new_codes]
34623462

34633463
# left_indexers are w.r.t masked frame.
34643464
# reverse to original frame!
34653465
if not mask_all:
34663466
left_indexer = mask.nonzero()[0][left_indexer]
34673467

3468-
join_index = MultiIndex(levels=new_levels, labels=new_labels,
3468+
join_index = MultiIndex(levels=new_levels, codes=new_codes,
34693469
names=left.names, verify_integrity=False)
34703470

34713471
if right_lev_indexer is not None:
34723472
right_indexer = algos.take_nd(right_lev_indexer,
3473-
join_index.labels[level],
3473+
join_index.codes[level],
34743474
allow_fill=False)
34753475
else:
3476-
right_indexer = join_index.labels[level]
3476+
right_indexer = join_index.codes[level]
34773477

34783478
if flip_order:
34793479
left_indexer, right_indexer = right_indexer, left_indexer
@@ -4103,24 +4103,12 @@ def asof_locs(self, where, mask):
41034103

41044104
return result
41054105

4106-
<<<<<<< HEAD
41074106
def sort_values(self, return_indexer=False, ascending=True):
41084107
"""
41094108
Return a sorted copy of the index.
41104109
41114110
Return a sorted copy of the index, and optionally return the indices
41124111
that sorted the index itself.
4113-
=======
4114-
levels, codes, names = (
4115-
_restore_dropped_levels_multijoin(self, other,
4116-
dropped_names,
4117-
join_idx,
4118-
lidx, ridx))
4119-
4120-
# Re-create the multi-index
4121-
multi_join_idx = MultiIndex(levels=levels, codes=codes,
4122-
names=names, verify_integrity=False)
4123-
>>>>>>> various changes
41244112
41254113
Parameters
41264114
----------
@@ -4478,24 +4466,15 @@ def isin(self, values, level=None):
44784466
passed set of values. The length of the returned boolean array matches
44794467
the length of the index.
44804468
4481-
<<<<<<< HEAD
44824469
Parameters
44834470
----------
44844471
values : set or list-like
44854472
Sought values.
44864473
44874474
.. versionadded:: 0.18.1
4488-
=======
4489-
new_level_codes = algos.take_nd(rev_indexer, left.codes[level],
4490-
allow_fill=False)
4491-
4492-
new_codes = list(left.codes)
4493-
new_codes[level] = new_level_codes
4494-
>>>>>>> various changes
44954475
44964476
Support for values as a set.
44974477
4498-
<<<<<<< HEAD
44994478
level : str or int, optional
45004479
Name or position of the index level to use (if the index is a
45014480
`MultiIndex`).
@@ -4504,40 +4483,18 @@ def isin(self, values, level=None):
45044483
-------
45054484
is_contained : ndarray
45064485
NumPy array of boolean values.
4507-
=======
4508-
if keep_order: # just drop missing values. o.w. keep order
4509-
left_indexer = np.arange(len(left), dtype=np.intp)
4510-
mask = new_level_codes != -1
4511-
if not mask.all():
4512-
new_codes = [codes_[mask] for codes_ in new_codes]
4513-
left_indexer = left_indexer[mask]
4514-
4515-
else: # tie out the order with other
4516-
if level == 0: # outer most level, take the fast route
4517-
ngroups = 1 + new_level_codes.max()
4518-
left_indexer, counts = libalgos.groupsort_indexer(
4519-
new_level_codes, ngroups)
4520-
>>>>>>> various changes
45214486
45224487
See Also
45234488
--------
45244489
Series.isin : Same for Series.
45254490
DataFrame.isin : Same method for DataFrames.
45264491
4527-
<<<<<<< HEAD
45284492
Notes
45294493
-----
45304494
In the case of `MultiIndex` you must either specify `values` as a
45314495
list-like object containing tuples that are the same length as the
45324496
number of levels, or specify `level`. Otherwise it will raise a
45334497
``ValueError``.
4534-
=======
4535-
else: # sort the leaves
4536-
mask = new_level_codes != -1
4537-
mask_all = mask.all()
4538-
if not mask_all:
4539-
new_codes = [lab[mask] for lab in new_codes]
4540-
>>>>>>> various changes
45414498
45424499
If `level` is specified:
45434500

pandas/core/indexes/multi.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -327,11 +327,11 @@ def from_arrays(cls, arrays, sortorder=None, names=None):
327327

328328
from pandas.core.arrays.categorical import _factorize_from_iterables
329329

330-
labels, levels = _factorize_from_iterables(arrays)
330+
codes, levels = _factorize_from_iterables(arrays)
331331
if names is None:
332332
names = [getattr(arr, "name", None) for arr in arrays]
333333

334-
return MultiIndex(levels=levels, labels=labels, sortorder=sortorder,
334+
return MultiIndex(levels=levels, codes=codes, sortorder=sortorder,
335335
names=names, verify_integrity=False)
336336

337337
@classmethod
@@ -427,9 +427,9 @@ def from_product(cls, iterables, sortorder=None, names=None):
427427
elif is_iterator(iterables):
428428
iterables = list(iterables)
429429

430-
labels, levels = _factorize_from_iterables(iterables)
431-
labels = cartesian_product(labels)
432-
return MultiIndex(levels, labels, sortorder=sortorder, names=names)
430+
codes, levels = _factorize_from_iterables(iterables)
431+
codes = cartesian_product(codes)
432+
return MultiIndex(levels, codes, sortorder=sortorder, names=names)
433433

434434
# --------------------------------------------------------------------
435435

@@ -873,15 +873,15 @@ def format(self, space=2, sparsify=None, adjoin=True, names=False,
873873
return []
874874

875875
stringified_levels = []
876-
for lev, lab in zip(self.levels, self.labels):
876+
for lev, level_codes in zip(self.levels, self.codes):
877877
na = na_rep if na_rep is not None else _get_na_rep(lev.dtype.type)
878878

879879
if len(lev) > 0:
880880

881-
formatted = lev.take(lab).format(formatter=formatter)
881+
formatted = lev.take(level_codes).format(formatter=formatter)
882882

883883
# we have some NA
884-
mask = lab == -1
884+
mask = level_codes == -1
885885
if mask.any():
886886
formatted = np.array(formatted, dtype=object)
887887
formatted[mask] = na
@@ -891,7 +891,7 @@ def format(self, space=2, sparsify=None, adjoin=True, names=False,
891891
# weird all NA case
892892
formatted = [pprint_thing(na if isna(x) else x,
893893
escape_chars=('\t', '\r', '\n'))
894-
for x in algos.take_1d(lev._values, lab)]
894+
for x in algos.take_1d(lev._values, level_codes)]
895895
stringified_levels.append(formatted)
896896

897897
result_levels = []

pandas/tests/indexes/multi/test_copy.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@ def test_shallow_copy(idx):
3939

4040
def test_labels_deprecated(idx):
4141
# GH23752
42-
codes = idx.codes
4342
with tm.assert_produces_warning(FutureWarning):
44-
idx.copy(labels=codes)
43+
idx.copy(labels=idx.codes)
4544

4645

4746
def test_view(idx):

pandas/tests/indexing/multiindex/conftest.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ def multiindex_dataframe_random_data():
1010
"""DataFrame with 2 level MultiIndex with random data"""
1111
index = MultiIndex(levels=[['foo', 'bar', 'baz', 'qux'], ['one', 'two',
1212
'three']],
13-
labels=[[0, 0, 0, 1, 1, 2, 2, 3, 3, 3],
14-
[0, 1, 2, 0, 1, 1, 2, 0, 1, 2]],
13+
codes=[[0, 0, 0, 1, 1, 2, 2, 3, 3, 3],
14+
[0, 1, 2, 0, 1, 1, 2, 0, 1, 2]],
1515
names=['first', 'second'])
1616
return DataFrame(np.random.randn(10, 3), index=index,
1717
columns=Index(['A', 'B', 'C'], name='exp'))

pandas/tests/indexing/multiindex/test_getitem.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ def test_getitem_duplicates_multiindex(self):
6464

6565
index = MultiIndex(levels=[['D', 'B', 'C'],
6666
[0, 26, 27, 37, 57, 67, 75, 82]],
67-
labels=[[0, 0, 0, 1, 2, 2, 2, 2, 2, 2],
68-
[1, 3, 4, 6, 0, 2, 2, 3, 5, 7]],
67+
codes=[[0, 0, 0, 1, 2, 2, 2, 2, 2, 2],
68+
[1, 3, 4, 6, 0, 2, 2, 3, 5, 7]],
6969
names=['tag', 'day'])
7070
arr = np.random.randn(len(index), 1)
7171
df = DataFrame(arr, index=index, columns=['val'])
@@ -87,8 +87,8 @@ def f():
8787
# A is treated as a special Timestamp
8888
index = MultiIndex(levels=[['A', 'B', 'C'],
8989
[0, 26, 27, 37, 57, 67, 75, 82]],
90-
labels=[[0, 0, 0, 1, 2, 2, 2, 2, 2, 2],
91-
[1, 3, 4, 6, 0, 2, 2, 3, 5, 7]],
90+
codes=[[0, 0, 0, 1, 2, 2, 2, 2, 2, 2],
91+
[1, 3, 4, 6, 0, 2, 2, 3, 5, 7]],
9292
names=['tag', 'day'])
9393
df = DataFrame(arr, index=index, columns=['val'])
9494
result = df.val['A']
@@ -264,8 +264,8 @@ def test_getitem_toplevel(self, multiindex_dataframe_random_data):
264264

265265
def test_getitem_int(self, multiindex_dataframe_random_data):
266266
levels = [[0, 1], [0, 1, 2]]
267-
labels = [[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]]
268-
index = MultiIndex(levels=levels, labels=labels)
267+
codes = [[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]]
268+
index = MultiIndex(levels=levels, codes=codes)
269269

270270
frame = DataFrame(np.random.randn(6, 2), index=index)
271271

pandas/tests/indexing/multiindex/test_loc.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
def single_level_multiindex():
1212
"""single level MultiIndex"""
1313
return MultiIndex(levels=[['foo', 'bar', 'baz', 'qux']],
14-
labels=[[0, 1, 2, 3]], names=['first'])
14+
codes=[[0, 1, 2, 3]], names=['first'])
1515

1616

1717
@pytest.mark.filterwarnings("ignore:\\n.ix:DeprecationWarning")
@@ -40,7 +40,7 @@ def test_loc_getitem_series(self):
4040

4141
empty = Series(data=[], dtype=np.float64)
4242
expected = Series([], index=MultiIndex(
43-
levels=index.levels, labels=[[], []], dtype=np.float64))
43+
levels=index.levels, codes=[[], []], dtype=np.float64))
4444
result = x.loc[empty]
4545
tm.assert_series_equal(result, expected)
4646

@@ -60,7 +60,7 @@ def test_loc_getitem_array(self):
6060
# empty array:
6161
empty = np.array([])
6262
expected = Series([], index=MultiIndex(
63-
levels=index.levels, labels=[[], []], dtype=np.float64))
63+
levels=index.levels, codes=[[], []], dtype=np.float64))
6464
result = x.loc[empty]
6565
tm.assert_series_equal(result, expected)
6666

pandas/tests/indexing/multiindex/test_partial.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ def test_xs_partial(self, multiindex_dataframe_random_data,
5252

5353
# ex from #1796
5454
index = MultiIndex(levels=[['foo', 'bar'], ['one', 'two'], [-1, 1]],
55-
labels=[[0, 0, 0, 0, 1, 1, 1, 1],
56-
[0, 0, 1, 1, 0, 0, 1, 1], [0, 1, 0, 1, 0, 1,
57-
0, 1]])
55+
codes=[[0, 0, 0, 0, 1, 1, 1, 1],
56+
[0, 0, 1, 1, 0, 0, 1, 1], [0, 1, 0, 1, 0, 1,
57+
0, 1]])
5858
df = DataFrame(np.random.randn(8, 4), index=index,
5959
columns=list('abcd'))
6060

@@ -68,7 +68,7 @@ def test_getitem_partial(
6868
ymd = ymd.T
6969
result = ymd[2000, 2]
7070

71-
expected = ymd.reindex(columns=ymd.columns[ymd.columns.labels[1] == 1])
71+
expected = ymd.reindex(columns=ymd.columns[ymd.columns.codes[1] == 1])
7272
expected.columns = expected.columns.droplevel(0).droplevel(0)
7373
tm.assert_frame_equal(result, expected)
7474

@@ -82,12 +82,12 @@ def test_fancy_slice_partial(
8282

8383
ymd = multiindex_year_month_day_dataframe_random_data
8484
result = ymd.loc[(2000, 2):(2000, 4)]
85-
lev = ymd.index.labels[1]
85+
lev = ymd.index.codes[1]
8686
expected = ymd[(lev >= 1) & (lev <= 3)]
8787
tm.assert_frame_equal(result, expected)
8888

8989
def test_getitem_partial_column_select(self):
90-
idx = MultiIndex(labels=[[0, 0, 0], [0, 1, 1], [1, 0, 1]],
90+
idx = MultiIndex(codes=[[0, 0, 0], [0, 1, 1], [1, 0, 1]],
9191
levels=[['a', 'b'], ['x', 'y'], ['p', 'q']])
9292
df = DataFrame(np.random.rand(3, 2), index=idx)
9393

0 commit comments

Comments
 (0)