python 请问如何给索引从200开始的series重新设立索引,使其从0开始?
我的series和dataframe删除一些数据后,索引出现间断,且不是从0开始,之后尝试一些办法它都是从0开始后没有数据的部分自动用nan填齐,请问我该如何是索引重新从...
我的series和dataframe删除一些数据后,索引出现间断,且不是从0开始,之后尝试一些办法它都是从0开始后没有数据的部分自动用nan填齐,请问我该如何是索引重新从0开始,并且无间断,不补充值呢?
展开
1个回答
2016-07-01
展开全部
python的创始人(Guido van Rossum)说过,Python使用0-based索引方式的原因之一是Python的切片(slice)语法。
先看看切片的用法。可能最常见的用法就是“从数组中切出前n位”或“从数值这第i位起切出n位”(前一种实际上是i==起始位的特殊用法)。如果使用这种语法时不需要表达成难看的+1或-1补充方式,那将是非常的优雅。
使用0-based的索引方式,Python的半开区间切片和缺省匹配区间切片语法变得非常漂亮: a[:n] 和 a[i:i+n],前者的标准写法就是a[0:n]。
如果是1-base的索引方式,那么,想让a[:n]表达成“取前n个元素”,(这是不行的),要么使用一个闭合区间切片语法,要么在切片语法中使用切片起始位和切片长度2个参数的形式。使用1-based索引方式,半开区间切片语法变得不优雅。这种方式下使用闭合区间切片语法,为了表达从第i位取n个元素时必须写出a[i:i+n-1]。这样看来,如果使用1-based的索引,使用切片起始位+长度的形式更合适。这样可以写成a[i:n]。事实上ABC语言就是这样做的——它使用了一个独特的表达方式,写成a@i|n。(注:ABC语言是Python的祖先之一)
Guido van Rossum说想其是被半开区间语法的优雅迷住了。特别是当两个切片操作位置邻接时,第一个切片操作的终点索引值是第二个切片的起点索引值时,太漂亮了,无法舍弃。例如,想将一个数组以i,j两个点切成三部分——这三部分将
会是a[:i],a[i:j]和a[:i]。
这就是为什么python的创始人要让Python使用0-based的索引方式的原因。
先看看切片的用法。可能最常见的用法就是“从数组中切出前n位”或“从数值这第i位起切出n位”(前一种实际上是i==起始位的特殊用法)。如果使用这种语法时不需要表达成难看的+1或-1补充方式,那将是非常的优雅。
使用0-based的索引方式,Python的半开区间切片和缺省匹配区间切片语法变得非常漂亮: a[:n] 和 a[i:i+n],前者的标准写法就是a[0:n]。
如果是1-base的索引方式,那么,想让a[:n]表达成“取前n个元素”,(这是不行的),要么使用一个闭合区间切片语法,要么在切片语法中使用切片起始位和切片长度2个参数的形式。使用1-based索引方式,半开区间切片语法变得不优雅。这种方式下使用闭合区间切片语法,为了表达从第i位取n个元素时必须写出a[i:i+n-1]。这样看来,如果使用1-based的索引,使用切片起始位+长度的形式更合适。这样可以写成a[i:n]。事实上ABC语言就是这样做的——它使用了一个独特的表达方式,写成a@i|n。(注:ABC语言是Python的祖先之一)
Guido van Rossum说想其是被半开区间语法的优雅迷住了。特别是当两个切片操作位置邻接时,第一个切片操作的终点索引值是第二个切片的起点索引值时,太漂亮了,无法舍弃。例如,想将一个数组以i,j两个点切成三部分——这三部分将
会是a[:i],a[i:j]和a[:i]。
这就是为什么python的创始人要让Python使用0-based的索引方式的原因。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询