pandas.DataFrame.xs方法的用途

pandas.DataFrame.xsPandas 库中 DataFrame 类的一个方法,用于从 DataFrame 中按标签选择数据。

方法的作用

xs 方法(全称是 "cross-section")用于通过标签选择数据,它可以从 DataFrame 的行或列中提取特定的切片。与 lociloc 不同,xs 方法可以直接指定要提取的轴(行或列),并且可以更方便地处理多级索引(MultiIndex)。

方法的基本用法

Python复制
DataFrame.xs(key, axis=0, drop_level=None)
  • key:要选择的标签。
  • axis:指定选择的轴。axis=0 表示按行标签选择,axis=1 表示按列标签选择。
  • drop_level:在多级索引中,是否删除选择的索引级别。

示例

示例 1:按行标签选择

假设有一个 DataFrame
Python复制
import pandas as pd

data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
index = ['row1', 'row2', 'row3']
df = pd.DataFrame(data, index=index)
print(df)
输出:
复制
       A  B  C
row1   1  4  7
row2   2  5  8
row3   3  6  9
使用 xs 按行标签选择:
Python复制
selected_row = df.xs('row2', axis=0)
print(selected_row)
输出:
复制
A    2
B    5
C    8
Name: row2, dtype: int64

示例 2:按列标签选择

Python复制
selected_column = df.xs('B', axis=1)
print(selected_column)
输出:
复制
row1    4
row2    5
row3    6
Name: B, dtype: int64

示例 3:多级索引

假设有一个多级索引的 DataFrame
Python复制
data = {
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8]
}
index = pd.MultiIndex.from_tuples([('row1', 'sub1'), ('row1', 'sub2'), 
                                   ('row2', 'sub1'), ('row2', 'sub2')])
df = pd.DataFrame(data, index=index)
print(df)
输出:
复制
             A  B
row1 sub1   1  5
     sub2   2  6
row2 sub1   3  7
     sub2   4  8
使用 xs 选择多级索引中的某一级:
Python复制
selected_level = df.xs('row1', level=0)
print(selected_level)
输出:
复制
       A  B
sub1   1  5
sub2   2  6

总结

pandas.DataFrame.xsDataFrame 类的一个方法,用于按标签选择数据,支持按行或列选择,并且在处理多级索引时非常方便。
posted @ 2025-02-21 11:39  FreeCheng  阅读(160)  评论(0)    收藏  举报