pandas.DataFrame.xs#
- DataFrame.xs(key, axis=0, level=None, drop_level=True)[源代码]#
从 Series/DataFrame 返回横截面。
此方法接受一个 key 参数,以在 MultiIndex 的特定级别选择数据。
- 参数:
- 关键标签或标签的元组
索引中包含的标签,或在 MultiIndex 中部分包含的标签。
- 轴{0 或 ‘index’, 1 或 ‘columns’},默认 0
要检索横截面的轴。
- 级别对象,默认为前 n 层(n=1 或 len(key))
在键部分包含在 MultiIndex 中的情况下,指示使用哪些级别。级别可以通过标签或位置来引用。
- drop_level布尔值, 默认为 True
如果为 False,则返回与自身相同层级的对象。
- 返回:
- Series 或 DataFrame
从原始系列或数据框中对应于所选索引级别的横截面。
参见
DataFrame.loc
通过标签或布尔数组访问一组行和列。
DataFrame.iloc
纯基于整数位置的索引,用于按位置选择。
备注
xs 不能用于设置值。
MultiIndex Slicers 是一种在任何级别或多个级别上获取/设置值的通用方法。它是 xs 功能的超集,参见 MultiIndex Slicers。
例子
>>> 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