gpt4 book ai didi

python - 具有 RangeIndex 与 Int64Index 的数据帧 - 为什么?

转载 作者:行者123 更新时间:2023-12-02 02:52:33 26 4
gpt4 key购买 nike

编辑:我刚刚在代码中发现一行将我的 df 从 RangeIndex 更改为数字 Int64Index。这是如何以及为什么会发生?

在此行之前,我的所有 df 都是 RangeIndex 类型。在这行代码之后 df_new 更改为 Int64Index 类型,它是范围索引而不是数字索引。

# remove rows with DMT, no lumninance data
df_new = df_new[df_new.Person != 'DMT']

谁能解释一下以下内容吗?

Int64Index 和 RangeIndex

警告对带有 float 的基于整数的索引进行索引已在 0.18.0 中得到澄清,有关更改的摘要,请参阅此处。Int64Index是pandas中的一个基本索引。这是一个实现有序、可切片集的不可变数组。在 0.18.0 之前,Int64Index 将为所有 NDFrame 对象提供默认索引。RangeIndex 是 0.18.0 版本中添加的 Int64Index 的子类,现在为所有 NDFrame 对象提供默认索引。 RangeIndex是Int64Index的优化版本,可以表示单调有序集。这些类似于 Python 范围类型。” [来自 https://pandas.pydata.org/pandas-docs/stable/advanced.html#int64index-and-rangeindex]

  1. 为什么索引类型从 RangeIndex 更改为 Int64Index?
  2. 使用两种不同类型的索引处理数据帧之间的关键或重要区别是什么? (RangeIndex 和 Int64Index)

    类型(df_val.index)

    pandas.core.indexes.range.RangeIndex

    类型(df_new.index)

    pandas.core.indexes.numeric.Int64Index

最佳答案

根据 pandas 文档

RangeIndex 是 Int64Index 的一种节省内存的特殊情况,仅限于表示单调范围。在某些情况下使用 RangeIndex 可能会提高计算速度。

参数:start:int(默认:0),或其他RangeIndex实例。

如果未给出 int 和“stop”,则解释为“stop”。

停止:int(默认:0)

Int64Index 是带有纯整数标签的 Index 的特例。

步长:整数(默认值:1)

参数:数据:类似数组(一维)

我自己的代码的 RangeIndex 输出:

RangeIndex(开始=0,停止=4622,步骤=1)。在我的程序中,有 4622 个观察值。

Int64Index([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

        ...

934, 935, 936, 937, 938, 939, 940, 941, 942, 943],

dtype='int64', name='user_id', length=943)

没有。观察次数:943

关于python - 具有 RangeIndex 与 Int64Index 的数据帧 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51566370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com