在Python熊猫中,从1开始而不是从0开始创建行索引,而无需创建其他列

布拉姆·范罗伊:

我知道我可以像这样重置索引

df.reset_index(inplace=True)

但这将从索引开始0我想从开始1如何在不创建任何额外列的情况下并通过保留index / reset_index功能和选项来做到这一点?希望创建一个新的数据帧,所以inplace=True应该仍然适用。

EdChum:

只需直接分配一个新的索引数组:

df.index = np.arange(1, len(df) + 1)

例:

In [151]:

df = pd.DataFrame({'a':np.random.randn(5)})
df
Out[151]:
          a
0  0.443638
1  0.037882
2 -0.210275
3 -0.344092
4  0.997045
In [152]:

df.index = np.arange(1,len(df)+1)
df
Out[152]:
          a
1  0.443638
2  0.037882
3 -0.210275
4 -0.344092
5  0.997045

要不就:

df.index = df.index + 1

如果索引已经基于0

时间安排

由于某些原因,我无法进行计时,reset_index但以下是100,000行df上的计时:

In [160]:

%timeit df.index = df.index + 1
The slowest run took 6.45 times longer than the fastest. This could mean that an intermediate result is being cached 
10000 loops, best of 3: 107 µs per loop


In [161]:

%timeit df.index = np.arange(1, len(df) + 1)
10000 loops, best of 3: 154 µs per loop

因此,没有时间,reset_index我无法确切地说,但是如果索引已经0基于,则将每个索引值加1看起来会更快

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从1开始而不是列表的0开始计算索引

从0开始创建新的pandas列

为什么索引节点号从1开始而不是0?

从头开始创建显式意图,而无需创建ActivityNotFoundException

在JDBC中,为什么预处理语句的参数索引从1开始而不是0?

从头开始创建自定义BigCommerce主题,而无需在主题商店中出售

在iOS 7中,viewForHeaderInSection部分从1开始而不是从0开始

是否有一个 android 项目可以提供所有视图而无需从头开始创建它们?

为什么indexPath.row从1开始而不是0

为什么CHS中的扇区号寻址从扇区1开始而不是0?

Spark Scala从日期开始创建时间戳列

传递参数'的'1使指针从整数开始而无需强制转换

传递'new_student'的参数1使指针从整数开始而无需强制转换

在JavaScript中从头开始创建空的URL对象

在R中从头开始创建ggplot()以说明结果

从头开始创建选项菜单

PHP从查询开始创建数组

从头开始创建 css 模态

从头开始创建LinkedList类

从星期五开始创建星期

从特定提交开始创建新分支

从页面uID开始创建菜单

*ngFor 从底部开始创建 html 元素

如何从熊猫的日期值列从星期日开始创建一个新的周数列?

forEach 索引从 1 而不是 0 开始计数?

警告:传递'uart1_sendchar'的参数1会使指针从整数开始而无需强制转换[默认启用]

如何“更新”现有的命名实体识别模型-而不是从头开始创建?

为每个组创建增量索引,以其他列为条件开始行

在servicestack中使用protobuf,为什么order只能从1开始而不是0?