pandas.Series.xs#
- Series.xs(key, axis=0, level=None, drop_level=True)[源代码]#
从Series/DataFrame中返回横截面。
此方法采用 key 参数,用于在 MultiIndex 的特定级别选择数据。
- Parameters:
- key标签或标签元组
包含在索引中的标签,或在 MultiIndex 中部分包含的标签。
- axis{0 或 ‘index’, 1 或 ‘columns’}, default 0
用于检索横截面的轴。
- levelobject,默认为前 n 个级别(n=1 或 len(key))
在 MultiIndex 中部分包含键的情况下,指示使用了哪些级别。级别可以通过标签或位置来引用。
- drop_levelbool, default True
如果为 False,则返回具有与 self 相同级别的对象。
- Returns:
- Series 或 DataFrame
与所选索引级别对应的原始 Series 或 DataFrame 的横截面。
参见
DataFrame.loc通过标签或布尔数组访问一组行和列。
DataFrame.iloc纯粹基于整数位置的索引,用于按位置选择。
Notes
xs 不能用于设置值。
MultiIndex Slicers 是一种在任何级别或多个级别上获取/设置值的通用方法。它是 xs 功能的超集,请参阅 MultiIndex Slicers 中的 MultiIndex Slicers。
Examples
>>> d = {'num_legs': [4, 4, 2, 2], ... 'num_wings': [0, 0, 2, 2], ... 'class': ['mammal', 'mammal', 'mammal', 'bird'], ... 'animal': ['cat', 'dog', 'bat', 'penguin'], ... 'locomotion': ['walks', 'walks', 'flies', 'walks']} >>> df = pd.DataFrame(data=d) >>> df = df.set_index(['class', 'animal', 'locomotion']) >>> df num_legs num_wings class animal locomotion mammal cat walks 4 0 dog walks 4 0 bat flies 2 2 bird penguin walks 2 2
获取指定索引处的值
>>> df.xs('mammal') num_legs num_wings animal locomotion cat walks 4 0 dog walks 4 0 bat flies 2 2
获取多个索引处的值
>>> df.xs(('mammal', 'dog', 'walks')) num_legs 4 num_wings 0 Name: (mammal, dog, walks), dtype: int64
获取指定索引和级别处的值
>>> df.xs('cat', level=1) num_legs num_wings class locomotion mammal walks 4 0
获取多个索引和级别处的值
>>> df.xs(('bird', 'walks'), ... level=[0, 'locomotion']) num_legs num_wings animal penguin 2 2
获取指定列和轴处的值
>>> df.xs('num_wings', axis=1) class animal locomotion mammal cat walks 0 dog walks 0 bat flies 2 bird penguin walks 2 Name: num_wings, dtype: int64