@@ -1072,20 +1072,18 @@ class Coordinate(Variable):
1072
1072
1073
1073
The most important difference is that Coordinate objects must always have a
1074
1074
name, which is the dimension along which they index values unless another
1075
- dimension name is specified.
1075
+ name is specified.
1076
1076
1077
1077
Coordinates must always be 1-dimensional. In addition to Variable methods
1078
1078
and properties (attributes, encoding, broadcasting), they support some
1079
1079
pandas.Index methods directly (e.g., get_indexer), even though pandas does
1080
1080
not (yet) support duck-typing for indexes.
1081
1081
"""
1082
1082
1083
- def __init__ (self , name , data , attrs = None , encoding = None ,
1084
- fastpath = False , dim = None ):
1085
- if dim is None :
1086
- dim = name
1083
+ def __init__ (self , dims , data , attrs = None , encoding = None ,
1084
+ name = None , fastpath = False ):
1087
1085
1088
- super (Coordinate , self ).__init__ (dim , data , attrs , encoding , fastpath )
1086
+ super (Coordinate , self ).__init__ (dims , data , attrs , encoding , fastpath )
1089
1087
if self .ndim != 1 :
1090
1088
raise ValueError ('%s objects must be 1-dimensional' %
1091
1089
type (self ).__name__ )
@@ -1106,8 +1104,8 @@ def __getitem__(self, key):
1106
1104
if not hasattr (values , 'ndim' ) or values .ndim == 0 :
1107
1105
return Variable ((), values , self ._attrs , self ._encoding )
1108
1106
else :
1109
- return type (self )(self ._name , values , self ._attrs ,
1110
- self ._encoding , fastpath = True , dim = self . dims )
1107
+ return type (self )(self .dims , values , self ._attrs ,
1108
+ self ._encoding , name = self . _name , fastpath = True )
1111
1109
1112
1110
def __setitem__ (self , key , value ):
1113
1111
raise TypeError ('%s values cannot be modified' % type (self ).__name__ )
@@ -1159,8 +1157,8 @@ def copy(self, deep=True):
1159
1157
# there is no need to copy the index values here even if deep=True
1160
1158
# since pandas.Index objects are immutable
1161
1159
data = PandasIndexAdapter (self ) if deep else self ._data
1162
- return type (self )(self ._name , data , self ._attrs ,
1163
- self ._encoding , fastpath = True , dim = self . dims )
1160
+ return type (self )(self .dims , data , self ._attrs ,
1161
+ self ._encoding , name = self . _name , fastpath = True )
1164
1162
1165
1163
def _data_equals (self , other ):
1166
1164
return self .to_index ().equals (other .to_index ())
@@ -1205,7 +1203,7 @@ def get_level_coord(self, level):
1205
1203
if self .level_names is None :
1206
1204
raise ValueError ("Coordinate %s has no MultiIndex" % self .name )
1207
1205
index = self .to_index ()
1208
- return type (self )(level , index .get_level_values (level ), dim = self . name )
1206
+ return type (self )(self . dims , index .get_level_values (level ), name = level )
1209
1207
1210
1208
@property
1211
1209
def name (self ):
0 commit comments