ValueError: index must be monotonic increasing or decreasing

18,388

Solution 1

As David said it was due to index being a string. But why were you getting the "Index not monotonic Error" and the answer to that is - For reindexing methods to work, your index must be in sorted/monotonic/increasing order. And when your index was a string, it wasn't sorted, correct sorting should have been:

ser3 = Series(['USA','Mexico','Canada'],index = ['0','10','5']) ranger = range(15)

Note: ranger being an integer sequence while index is string sequence, the method isn't going to do much but reindex will work

In [100]: ser3.reindex(ranger,method = 'ffill')
Out[100]: 
0     NaN
1     NaN
2     NaN
3     NaN
4     NaN
5     NaN
6     NaN
7     NaN
8     NaN
9     NaN
10    NaN
11    NaN
12    NaN
13    NaN
14    NaN
dtype: object

Hope this helps and makes reindex clearer !!

Solution 2

maybe you can try to put the ffill out of reindex l

ser3.reindex(ranger).ffill()
Share:
18,388
Varun
Author by

Varun

Updated on June 04, 2022

Comments

  • Varun
    Varun almost 2 years

    ser3 = Series(['USA','Mexico','Canada'],index = ['0','5','10'])

    here ranger = range(15)

    I get an error while using Forward fill in iPython

    ser3.reindex(ranger,method = 'ffill')

    /Users/varun/anaconda/lib/python2.7/site-packages/pandas/core/index.pyc in _searchsorted_monotonic(self, label, side)
       2395             return len(self) - pos
       2396 
    -> 2397         raise ValueError('index must be monotonic increasing or decreasing')
       2398 
       2399     def get_slice_bound(self, label, side, kind):
    
    ValueError: index must be monotonic increasing or decreasing
    
  • Varun
    Varun almost 9 years
    Thank you that was very helpful.