Python Series取值是数据分析中的基础操作,主要通过索引、切片、布尔索引和标签访问实现。 其中,整数索引和标签索引是最常用的方式,分别适用于位置明确的场景和需要可读性的场景。切片操作能高效提取连续数据,而布尔索引则适合条件筛选。iloc
和loc
属性进一步细化了取值逻辑,确保灵活性与精确性。
-
整数索引与标签索引
通过iloc
属性使用整数索引(如s.iloc[0]
)适合按位置访问数据,索引从0开始。标签索引(如s['a']
)则通过自定义标签取值,提升代码可读性。两者区别在于整数索引半开区间(不含结束位),标签索引闭区间(含结束位)。 -
切片操作
切片(如s[1:4]
或s['b':'d']
)可提取连续数据。整数切片不包含结束位置,标签切片包含,需注意避免混淆。例如,s.iloc[1:4]
提取第2到第4个元素,而s['b':'d']
包含标签为'd'
的值。 -
布尔索引
通过条件表达式(如s[s > 2]
)筛选数据,返回满足条件的子集。支持组合条件(如(s > 10) & (s < 40)
),适用于复杂查询。布尔索引本质是生成掩码后过滤数据。 -
loc
与iloc
的进阶用法
loc
专门用于标签索引,iloc
仅支持整数位置。例如,s.loc['b':'d']
包含结束标签,而s.iloc[1:3]
不包含位置3。混合使用时需明确需求,避免意外结果。 -
属性与方法辅助取值
values
属性提取数据为数组,index
获取索引列表。at
和iat
可快速访问单个元素(如s.at['a']
比loc
高效),where()
方法保留满足条件的数据,其余填充默认值。
掌握这些方法能高效处理Series数据,建议根据场景选择合适方式,优先使用标签索引提升代码可读性,复杂条件时结合布尔索引与切片。