Numpy ValueError:索引必须是单调递增或递减的

Numpy ValueError:索引必须是单调递增或递减的,numpy,pandas,ipython,ipython-notebook,Numpy,Pandas,Ipython,Ipython Notebook,ser3=系列[‘美国’、‘墨西哥’、‘加拿大’],指数=[‘0’、‘5’、‘10’] 这里是ranger=range15 在iPython中使用正向填充时出错 ser3.reindexranger,方法='ffill' 原始索引是字符串而不是数字。如果将原始索引更改为数字,例如,索引=[0,5,10],则其工作正常 In [1]: from pandas import Series ...: ser3 = Series(['USA','Mexico','Canada'],index =

ser3=系列[‘美国’、‘墨西哥’、‘加拿大’],指数=[‘0’、‘5’、‘10’]

这里是ranger=range15

在iPython中使用正向填充时出错

ser3.reindexranger,方法='ffill'


原始索引是字符串而不是数字。如果将原始索引更改为数字,例如,索引=[0,5,10],则其工作正常

In [1]: from pandas import Series
   ...: ser3 = Series(['USA','Mexico','Canada'],index = [0,5,10])
   ...: ranger = range(15)
   ...: ser3.reindex(ranger,method = 'ffill')
   ...: 
Out[1]: 
0        USA
1        USA
2        USA
3        USA
4        USA
5     Mexico
6     Mexico
7     Mexico
8     Mexico
9     Mexico
10    Canada
11    Canada
12    Canada
13    Canada
14    Canada
dtype: object

正如David所说,这是因为索引是一个字符串。但是为什么你得到的索引不是单调的错误,答案是——为了使方法重新索引,你的索引必须是排序的/单调的/递增的顺序。当索引是字符串时,它没有排序,正确的排序应该是:

ser3=系列[‘美国’、‘墨西哥’、‘加拿大’],指数=[‘0’、‘10’、‘5’] 护林员=护林员15

注意:ranger是一个整数序列,而index是字符串序列,该方法不会做太多工作,但reindex会起作用
希望这有助于reindex更清晰

也许你可以试着把这个字母从reindex l中去掉


谢谢你,这很有帮助。
In [1]: from pandas import Series
   ...: ser3 = Series(['USA','Mexico','Canada'],index = [0,5,10])
   ...: ranger = range(15)
   ...: ser3.reindex(ranger,method = 'ffill')
   ...: 
Out[1]: 
0        USA
1        USA
2        USA
3        USA
4        USA
5     Mexico
6     Mexico
7     Mexico
8     Mexico
9     Mexico
10    Canada
11    Canada
12    Canada
13    Canada
14    Canada
dtype: object
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
ser3.reindex(ranger).ffill()