@@ -2194,6 +2194,7 @@ def xs(self, key, axis=0, level=None, copy=True):
2194
2194
-------
2195
2195
xs : Series or DataFrame
2196
2196
"""
2197
+ axis = self ._get_axis_number (axis )
2197
2198
labels = self ._get_axis (axis )
2198
2199
if level is not None :
2199
2200
loc , new_ax = labels .get_loc_level (key , level = level )
@@ -2340,6 +2341,8 @@ def align(self, other, join='outer', axis=None, level=None, copy=True,
2340
2341
(left, right) : (DataFrame, type of other)
2341
2342
Aligned objects
2342
2343
"""
2344
+ if axis is not None :
2345
+ axis = self ._get_axis_number (axis )
2343
2346
if isinstance (other , DataFrame ):
2344
2347
return self ._align_frame (other , join = join , axis = axis , level = level ,
2345
2348
copy = copy , fill_value = fill_value ,
@@ -2522,6 +2525,7 @@ def reindex_axis(self, labels, axis=0, method=None, level=None, copy=True,
2522
2525
reindexed : same type as calling instance
2523
2526
"""
2524
2527
self ._consolidate_inplace ()
2528
+ axis = self ._get_axis_number (axis )
2525
2529
if axis == 0 :
2526
2530
return self ._reindex_index (labels , method , copy , level ,
2527
2531
fill_value = fill_value ,
@@ -2834,6 +2838,7 @@ def take(self, indices, axis=0, convert=True):
2834
2838
2835
2839
# check/convert indicies here
2836
2840
if convert :
2841
+ axis = self ._get_axis_number (axis )
2837
2842
indices = _maybe_convert_indices (indices , len (self ._get_axis (axis )))
2838
2843
2839
2844
if self ._is_mixed_type :
@@ -2922,6 +2927,7 @@ def dropna(self, axis=0, how='any', thresh=None, subset=None):
2922
2927
subset = subset , axis = ax )
2923
2928
return result
2924
2929
2930
+ axis = self ._get_axis_number (axis )
2925
2931
if axis == 0 :
2926
2932
agg_axis = 1
2927
2933
elif axis == 1 :
@@ -3089,6 +3095,7 @@ def sort_index(self, axis=0, by=None, ascending=True, inplace=False):
3089
3095
"""
3090
3096
from pandas .core .groupby import _lexsort_indexer
3091
3097
3098
+ axis = self ._get_axis_number (axis )
3092
3099
if axis not in [0 , 1 ]:
3093
3100
raise ValueError ('Axis must be 0 or 1, got %s' % str (axis ))
3094
3101
@@ -3159,6 +3166,7 @@ def sortlevel(self, level=0, axis=0, ascending=True, inplace=False):
3159
3166
-------
3160
3167
sorted : DataFrame
3161
3168
"""
3169
+ axis = self ._get_axis_number (axis )
3162
3170
the_axis = self ._get_axis (axis )
3163
3171
if not isinstance (the_axis , MultiIndex ):
3164
3172
raise Exception ('can only sort by level with a hierarchical index' )
@@ -3202,6 +3210,7 @@ def swaplevel(self, i, j, axis=0):
3202
3210
"""
3203
3211
result = self .copy ()
3204
3212
3213
+ axis = self ._get_axis_number (axis )
3205
3214
if axis == 0 :
3206
3215
result .index = result .index .swaplevel (i , j )
3207
3216
else :
@@ -3223,6 +3232,7 @@ def reorder_levels(self, order, axis=0):
3223
3232
-------
3224
3233
type of caller (new object)
3225
3234
"""
3235
+ axis = self ._get_axis_number (axis )
3226
3236
if not isinstance (self ._get_axis (axis ),
3227
3237
MultiIndex ): # pragma: no cover
3228
3238
raise Exception ('Can only reorder levels on a hierarchical axis.' )
@@ -3274,6 +3284,7 @@ def fillna(self, value=None, method=None, axis=0, inplace=False,
3274
3284
"""
3275
3285
self ._consolidate_inplace ()
3276
3286
3287
+ axis = self ._get_axis_number (axis )
3277
3288
if value is None :
3278
3289
if method is None :
3279
3290
raise ValueError ('must specify a fill method or value' )
@@ -3362,6 +3373,7 @@ def replace(self, to_replace, value=None, method='pad', axis=0,
3362
3373
"""
3363
3374
self ._consolidate_inplace ()
3364
3375
3376
+ axis = self ._get_axis_number (axis )
3365
3377
if inplace :
3366
3378
import warnings
3367
3379
warnings .warn ("replace with inplace=True will return None"
@@ -4057,6 +4069,7 @@ def apply(self, func, axis=0, broadcast=False, raw=False,
4057
4069
if len (self .columns ) == 0 and len (self .index ) == 0 :
4058
4070
return self
4059
4071
4072
+ axis = self ._get_axis_number (axis )
4060
4073
if kwds or args and not isinstance (func , np .ufunc ):
4061
4074
f = lambda x : func (x , * args , ** kwds )
4062
4075
else :
@@ -4478,6 +4491,7 @@ def corrwith(self, other, axis=0, drop=False):
4478
4491
-------
4479
4492
correls : Series
4480
4493
"""
4494
+ axis = self ._get_axis_number (axis )
4481
4495
if isinstance (other , Series ):
4482
4496
return self .apply (other .corr , axis = axis )
4483
4497
@@ -4580,6 +4594,7 @@ def count(self, axis=0, level=None, numeric_only=False):
4580
4594
-------
4581
4595
count : Series (or DataFrame if level specified)
4582
4596
"""
4597
+ axis = self ._get_axis_number (axis )
4583
4598
if level is not None :
4584
4599
return self ._count_level (level , axis = axis ,
4585
4600
numeric_only = numeric_only )
@@ -4756,6 +4771,7 @@ def mad(self, axis=0, skipna=True, level=None):
4756
4771
4757
4772
frame = self ._get_numeric_data ()
4758
4773
4774
+ axis = self ._get_axis_number (axis )
4759
4775
if axis == 0 :
4760
4776
demeaned = frame - frame .mean (axis = 0 )
4761
4777
else :
@@ -4811,12 +4827,14 @@ def _agg_by_level(self, name, axis=0, level=0, skipna=True, **kwds):
4811
4827
grouped = self .groupby (level = level , axis = axis )
4812
4828
if hasattr (grouped , name ) and skipna :
4813
4829
return getattr (grouped , name )(** kwds )
4830
+ axis = self ._get_axis_number (axis )
4814
4831
method = getattr (type (self ), name )
4815
4832
applyf = lambda x : method (x , axis = axis , skipna = skipna , ** kwds )
4816
4833
return grouped .aggregate (applyf )
4817
4834
4818
4835
def _reduce (self , op , axis = 0 , skipna = True , numeric_only = None ,
4819
4836
filter_type = None , ** kwds ):
4837
+ axis = self ._get_axis_number (axis )
4820
4838
f = lambda x : op (x , axis = axis , skipna = skipna , ** kwds )
4821
4839
labels = self ._get_agg_axis (axis )
4822
4840
if numeric_only is None :
@@ -4875,6 +4893,7 @@ def idxmin(self, axis=0, skipna=True):
4875
4893
-------
4876
4894
idxmin : Series
4877
4895
"""
4896
+ axis = self ._get_axis_number (axis )
4878
4897
indices = nanops .nanargmin (self .values , axis = axis , skipna = skipna )
4879
4898
index = self ._get_axis (axis )
4880
4899
result = [index [i ] if i >= 0 else NA for i in indices ]
@@ -4897,6 +4916,7 @@ def idxmax(self, axis=0, skipna=True):
4897
4916
-------
4898
4917
idxmax : Series
4899
4918
"""
4919
+ axis = self ._get_axis_number (axis )
4900
4920
indices = nanops .nanargmax (self .values , axis = axis , skipna = skipna )
4901
4921
index = self ._get_axis (axis )
4902
4922
result = [index [i ] if i >= 0 else NA for i in indices ]
@@ -5030,6 +5050,7 @@ def rank(self, axis=0, numeric_only=None, method='average',
5030
5050
-------
5031
5051
ranks : DataFrame
5032
5052
"""
5053
+ axis = self ._get_axis_number (axis )
5033
5054
if numeric_only is None :
5034
5055
try :
5035
5056
ranks = algos .rank (self .values , axis = axis , method = method ,
@@ -5070,6 +5091,7 @@ def to_timestamp(self, freq=None, how='start', axis=0, copy=True):
5070
5091
if copy :
5071
5092
new_data = new_data .copy ()
5072
5093
5094
+ axis = self ._get_axis_number (axis )
5073
5095
if axis == 0 :
5074
5096
new_data .set_axis (1 , self .index .to_timestamp (freq = freq , how = how ))
5075
5097
elif axis == 1 :
@@ -5100,6 +5122,7 @@ def to_period(self, freq=None, axis=0, copy=True):
5100
5122
if copy :
5101
5123
new_data = new_data .copy ()
5102
5124
5125
+ axis = self ._get_axis_number (axis )
5103
5126
if axis == 0 :
5104
5127
if freq is None :
5105
5128
freq = self .index .freqstr or self .index .inferred_freq
0 commit comments