pandas.core.groupby.SeriesGroupBy.take#
- SeriesGroupBy.take(indices, axis=_NoDefault.no_default, **kwargs)[源代码]#
返回每个组中指定*位置*索引的元素。
这意味着我们不是根据对象的 index 属性中的实际值进行索引。我们是根据元素在对象中的实际位置进行索引。
如果某个请求的索引不存在于某个分组中,此方法会引发错误。要获得忽略不存在索引的类似行为,请参阅
SeriesGroupBy.nth()。- Parameters:
- indices类数组
一个整数数组,指示每个组中要取的(元素的)位置。
- axis{0 或 ‘index’, 1 或 ‘columns’, None},默认 0
选择元素的轴。
0表示选择行,1表示选择列。对于 SeriesGroupBy,此参数未被使用,默认为 0。自 2.1.0 版本弃用: 对于 axis=1,在底层对象上操作。否则 axis 关键字不是必需的。
- **kwargs
为与
numpy.take()保持兼容。对输出没有影响。
- Returns:
- Series
一个 Series,包含从每个组中提取的元素。
参见
Series.take沿着轴从 Series 中提取元素。
Series.loc按标签选择 DataFrame 的子集。
Series.iloc按位置选择 DataFrame 的子集。
numpy.take沿轴从数组中获取元素。
SeriesGroupBy.nth类似于 take,如果索引不存在则不会引发错误。
Examples
>>> 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["name"].groupby([1, 1, 2, 2, 2])
沿默认的轴 0,在每个组中选取位置为 0 和 1 的元素。
>>> gb.take([0, 1]) 1 4 falcon 3 parrot 2 2 lion 1 monkey Name: name, dtype: object
我们可以使用负整数来获取正索引的元素,就像 Python 列表一样,从对象的末尾开始。
>>> gb.take([-1, -2]) 1 3 parrot 4 falcon 2 0 rabbit 1 monkey Name: name, dtype: object