Pandas 标签索引
在Pandas中,标签索引(Label-based indexing)是一种基于行或列的标签来选择数据的方式。与基于位置的索引不同,标签索引允许你使用行或列的名称来访问数据,这使得代码更具可读性和灵活性。
什么是标签索引?
标签索引是Pandas中一种基于行或列标签的数据选择方法。Pandas提供了多种方法来实现标签索引,其中最常用的是 .loc[]
方法。.loc[]
允许你通过行标签和列标签来选择数据。
备注
.loc[]
是专门用于标签索引的方法,而 .iloc[]
则是用于基于位置的索引。
基本用法
让我们从一个简单的例子开始。假设我们有一个包含学生成绩的DataFrame:
python
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Math': [90, 85, 88, 92],
'Science': [95, 89, 91, 87],
'English': [88, 92, 85, 90]
}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
print(df)
输出:
Name Math Science English
A Alice 90 95 88
B Bob 85 89 92
C Charlie 88 91 85
D David 92 87 90
在这个DataFrame中,行标签是 ['A', 'B', 'C', 'D']
,列标签是 ['Name', 'Math', 'Science', 'English']
。
选择单行
要选择单行数据,可以使用 .loc[]
并传入行标签:
python
print(df.loc['B'])
输出:
Name Bob
Math 85
Science 89
English 92
Name: B, dtype: object
选择多行
你也可以通过传入一个行标签列表来选择多行:
python
print(df.loc[['A', 'C']])
输出:
Name Math Science English
A Alice 90 95 88
C Charlie 88 91 85
选择特定列
要选择特定列,可以在 .loc[]
中指定列标签:
python
print(df.loc[:, 'Math'])
输出:
A 90
B 85
C 88
D 92
Name: Math, dtype: int64
选择行和列
你还可以同时选择行和列:
python
print(df.loc['B', 'Science'])
输出:
89
实际应用场景
假设你正在分析一个销售数据集,其中包含不同产品的销售数据。你可以使用标签索引来快速提取特定产品的销售数据。
python
sales_data = {
'Product': ['A', 'B', 'C', 'D'],
'Q1_Sales': [100, 150, 200, 250],
'Q2_Sales': [120, 160, 210, 260],
'Q3_Sales': [130, 170, 220, 270]
}
sales_df = pd.DataFrame(sales_data, index=['P1', 'P2', 'P3', 'P4'])
print(sales_df)
输出:
Product Q1_Sales Q2_Sales Q3_Sales
P1 A 100 120 130
P2 B 150 160 170
P3 C 200 210 220
P4 D 250 260 270
现在,假设你想提取产品 P2
在 Q2
的销售数据:
python
print(sales_df.loc['P2', 'Q2_Sales'])
输出:
160
总结
Pandas的标签索引功能非常强大,允许你通过行和列的标签来灵活地选择和操作数据。通过 .loc[]
方法,你可以轻松地提取特定行、列或单元格的数据。
提示
在实际应用中,标签索引特别适用于处理具有明确行和列标签的数据集,如时间序列数据、销售数据等。
附加资源
练习
- 创建一个包含学生成绩的DataFrame,并使用
.loc[]
方法提取特定学生的成绩。 - 在一个销售数据集中,使用
.loc[]
方法提取特定产品在特定季度的销售数据。