切片等操作也会对索引进行切片吗?

问题描述

我已经阅读了熊猫文献中的以下句子:

“系列的行为与ndarray非常相似,并且是对 大多数NumPy函数。但是,切片等操作也将 切片索引。”

我不确定第二句话在说什么。将切片切入索引是否是已知的?

解决方法

考虑以下代码:

import numpy as np
import pandas as pd

series = pd.Series([0,1,2,3,4,5,6])
array = series.to_numpy()

# Outputs 4,because that is element 2 of [2,4].
print(array[2:5][2]) 

# Outputs 2,because series[2:5] now has index [2,4],so the
# element with index 2 is still 2.
print(series[2:5][2]) 

由于切片序列,除非您使用.iloc,否则将使用该序列的索引,而ndarray没有索引,因此Series和ndarray的行为不会总是相似。

这还意味着,当使用Series作为输入时,旨在具有ndarray输入的代码可能会以意外方式失败,或者产生意外结果,除非该代码确保它可以与ndarray一起使用。