pandas.DataFrame.take#

DataFrame.take(indices, axis=0, **kwargs)[源代码]#

返回沿指定轴的给定 位置 索引中的元素。

这意味着我们不是根据对象索引属性中的实际值进行索引。我们是根据元素在对象中的实际位置进行索引。

参数:
索引array-like

一个表示要取哪些位置的整数数组。

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认 0

选择元素的轴。0 表示我们选择行,1 表示我们选择列。对于 Series,此参数未使用并默认为 0。

**kwargs

为了与 numpy.take() 兼容。对输出没有影响。

返回:
与调用者相同类型

一个类似数组的对象,包含从该对象中取出的元素。

参见

DataFrame.loc

通过标签选择DataFrame的一个子集。

DataFrame.iloc

按位置选择DataFrame的一个子集。

numpy.take

沿轴从数组中提取元素。

例子

>>> df = pd.DataFrame(
...     [
...         ("falcon", "bird", 389.0),
...         ("parrot", "bird", 24.0),
...         ("lion", "mammal", 80.5),
...         ("monkey", "mammal", np.nan),
...     ],
...     columns=["name", "class", "max_speed"],
...     index=[0, 2, 3, 1],
... )
>>> df
     name   class  max_speed
0  falcon    bird      389.0
2  parrot    bird       24.0
3    lion  mammal       80.5
1  monkey  mammal        NaN

沿轴 0(默认)取位置 0 和 3 的元素。

注意实际选择的索引(0 和 1)与我们选择的索引 0 和 3 不对应。这是因为我们选择的是第 0 行和第 3 行,而不是索引等于 0 和 3 的行。

>>> df.take([0, 3])
     name   class  max_speed
0  falcon    bird      389.0
1  monkey  mammal        NaN

沿轴 1(列选择)取索引 1 和 2 处的元素。

>>> df.take([1, 2], axis=1)
    class  max_speed
0    bird      389.0
2    bird       24.0
3  mammal       80.5
1  mammal        NaN

我们可以使用负整数来获取元素,从对象的末尾开始,就像使用Python列表一样。

>>> df.take([-1, -2])
     name   class  max_speed
1  monkey  mammal        NaN
3    lion  mammal       80.5