pandas.core.groupby.DataFrameGroupBy.take #
- DataFrameGroupBy。take ( indexs , axis = _NoDefault.no_default , ** kwargs ) [来源] #
返回每组中给定位置索引中的元素。
这意味着我们没有根据对象索引属性中的实际值进行索引。我们根据元素在对象中的实际位置进行索引。
如果某个组不存在请求的索引,则此方法将引发。要获得忽略不存在索引的类似行为,请参阅
DataFrameGroupBy.nth()
。- 参数:
- 类似数组的索引
指示要采取哪些位置的整数数组。
- 轴{0 或 'index', 1 或 'columns', None}, 默认 0
选择元素的轴。
0
意味着我们正在选择行,1
意味着我们正在选择列。自版本 2.1.0 起已弃用:对于 axis=1,改为对基础对象进行操作。否则,axis 关键字不是必需的。
- **夸格
为了与
numpy.take()
.对输出没有影响。
- 返回:
- 数据框
包含从每个组中获取的元素的 DataFrame。
也可以看看
DataFrame.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), ... ('rabbit', 'mammal', 15.0)], ... columns=['name', 'class', 'max_speed'], ... index=[4, 3, 2, 1, 0]) >>> df name class max_speed 4 falcon bird 389.0 3 parrot bird 24.0 2 lion mammal 80.5 1 monkey mammal NaN 0 rabbit mammal 15.0 >>> gb = df.groupby([1, 1, 2, 2, 2])
沿着轴 0(默认)在位置 0 和 1 处获取元素。
请注意结果中选择的索引与我们的输入索引 0 和 1 不对应。这是因为我们选择的是第 0 行和第 1 行,而不是索引等于 0 和 1 的行。
>>> gb.take([0, 1]) name class max_speed 1 4 falcon bird 389.0 3 parrot bird 24.0 2 2 lion mammal 80.5 1 monkey mammal NaN
指定索引的顺序会影响结果的顺序。这里,顺序与前面的示例交换了。
>>> gb.take([1, 0]) name class max_speed 1 3 parrot bird 24.0 4 falcon bird 389.0 2 1 monkey mammal NaN 2 lion mammal 80.5
沿轴 1 获取索引 1 和 2 处的元素(列选择)。
我们可以使用负整数作为正索引,从对象的末尾开始获取元素,就像 Python 列表一样。
>>> gb.take([-1, -2]) name class max_speed 1 3 parrot bird 24.0 4 falcon bird 389.0 2 0 rabbit mammal 15.0 1 monkey mammal NaN