Numpy ValueError:索引必须是单调递增或递减的
ser3=系列[‘美国’、‘墨西哥’、‘加拿大’],指数=[‘0’、‘5’、‘10’] 这里是ranger=range15 在iPython中使用正向填充时出错 ser3.reindexranger,方法='ffill'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 =
原始索引是字符串而不是数字。如果将原始索引更改为数字,例如,索引=[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()