pandas.DataFrame.xs方法的用途
pandas.DataFrame.xs 是 Pandas 库中 DataFrame 类的一个方法,用于从 DataFrame 中按标签选择数据。方法的作用
xs 方法(全称是 "cross-section")用于通过标签选择数据,它可以从 DataFrame 的行或列中提取特定的切片。与 loc 或 iloc 不同,xs 方法可以直接指定要提取的轴(行或列),并且可以更方便地处理多级索引(MultiIndex)。方法的基本用法
DataFrame.xs(key, axis=0, drop_level=None)
-
key:要选择的标签。 -
axis:指定选择的轴。axis=0表示按行标签选择,axis=1表示按列标签选择。 -
drop_level:在多级索引中,是否删除选择的索引级别。
示例
示例 1:按行标签选择
假设有一个
DataFrame: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 按行标签选择:selected_row = df.xs('row2', axis=0)
print(selected_row)
输出:
A 2
B 5
C 8
Name: row2, dtype: int64
示例 2:按列标签选择
selected_column = df.xs('B', axis=1)
print(selected_column)
输出:
row1 4
row2 5
row3 6
Name: B, dtype: int64
示例 3:多级索引
假设有一个多级索引的
DataFrame: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 选择多级索引中的某一级:selected_level = df.xs('row1', level=0)
print(selected_level)
输出:
A B
sub1 1 5
sub2 2 6
总结
pandas.DataFrame.xs 是 DataFrame 类的一个方法,用于按标签选择数据,支持按行或列选择,并且在处理多级索引时非常方便。

浙公网安备 33010602011771号