Skip to content

Commit 679e4dd

Browse files
committed
REF: _get_objs_combined_axis
1 parent 7bef6d8 commit 679e4dd

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

Diff for: pandas/core/frame.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -6032,12 +6032,10 @@ def _list_to_arrays(data, columns, coerce_float=False, dtype=None):
60326032

60336033

60346034
def _list_of_series_to_arrays(data, columns, coerce_float=False, dtype=None):
6035-
from pandas.core.index import _get_combined_index
6035+
from pandas.core.index import _get_objs_combined_axis
60366036

60376037
if columns is None:
6038-
columns = _get_combined_index([
6039-
s.index for s in data if getattr(s, 'index', None) is not None
6040-
])
6038+
columns = _get_objs_combined_axis(data)
60416039

60426040
indexer_cache = {}
60436041

Diff for: pandas/core/indexes/api.py

+8
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,19 @@
2323
'PeriodIndex', 'DatetimeIndex',
2424
'_new_Index', 'NaT',
2525
'_ensure_index', '_get_na_value', '_get_combined_index',
26+
'_get_objs_combined_axis',
2627
'_get_distinct_indexes', '_union_indexes',
2728
'_get_consensus_names',
2829
'_all_indexes_same']
2930

3031

32+
def _get_objs_combined_axis(objs, intersect=False, axis=0):
33+
obs_idxes = [getattr(obj, obj._AXIS_NAMES[axis]) for obj in objs
34+
if hasattr(obj, '_AXIS_NAMES')]
35+
if obs_idxes:
36+
return _get_combined_index(obs_idxes, intersect=intersect)
37+
38+
3139
def _get_combined_index(indexes, intersect=False):
3240
# TODO: handle index names!
3341
indexes = _get_distinct_indexes(indexes)

Diff for: pandas/core/reshape/pivot.py

+2-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pandas import Series, DataFrame, MultiIndex, Index
77
from pandas.core.groupby import Grouper
88
from pandas.core.reshape.util import cartesian_product
9-
from pandas.core.index import _get_combined_index
9+
from pandas.core.index import _get_objs_combined_axis
1010
from pandas.compat import range, lrange, zip
1111
from pandas import compat
1212
import pandas.core.common as com
@@ -506,12 +506,7 @@ def crosstab(index, columns, values=None, rownames=None, colnames=None,
506506
rownames = _get_names(index, rownames, prefix='row')
507507
colnames = _get_names(columns, colnames, prefix='col')
508508

509-
obs_idxes = [obj.index for objs in (index, columns) for obj in objs
510-
if hasattr(obj, 'index')]
511-
if obs_idxes:
512-
common_idx = _get_combined_index(obs_idxes, intersect=True)
513-
else:
514-
common_idx = None
509+
common_idx = _get_objs_combined_axis(index + columns, intersect=True)
515510

516511
data = {}
517512
data.update(zip(rownames, index))

0 commit comments

Comments
 (0)