Python DataFrame.loc函数:按标签选择行与列详解

5星 · 超过95%的资源 3 下载量 74 浏览量 更新于2024-08-29 收藏 50KB PDF 举报
Python的Pandas库是数据处理的强大工具,DataFrame.loc函数是其核心功能之一,它允许用户根据标签(label)或布尔数组来访问DataFrame中的行和列。loc函数主要基于标签操作,但也支持布尔数组作为索引,这使得数据筛选和提取更加灵活。 首先,我们来看一下DataFrame.loc的基本用法。它允许以下几种输入类型: 1. 单个标签:例如,你可以使用一个字符串如'viper'或者整数型的label值,但请注意,这里5并不是按照数值位置理解的,而是指代index中的某个特定标签。Pandas会自动将整数视为标签,而不是序列中的位置。 2. 多个标签的列表:例如,['cobra', 'viper', 'sidewinder'],这样可以一次性选取多行数据。 3. 多个标签的切片:比如'cobra':'viper',需要注意的是,这里的切片包括了起始和结束标签,不同于Python的常规切片语法。 4. 布尔数组:一个与被操作轴长度相同的布尔数组,True表示对应元素应该被选择,False则忽略。 实例演示: - 生成一个简单的DataFrame `df`,包含两列(max_speed和shield)和三行,每行代表一种蛇的特性,使用不同的标签作为索引。 ```python df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], index=['cobra', 'viper', 'sidewinder'], columns=['max_speed', 'shield']) ``` - 使用单个标签`'viper'`调用`df.loc`,得到该标签对应的行,返回一个Series对象: ```python df.loc['viper'] ``` 结果: ``` max_speed 4 shield 5 Name: viper, dtype: int64 ``` - 如果使用标签列表`['cobra', 'viper']`,则返回包含这两行的DataFrame: ```python df.loc[['cobra', 'viper']] ``` 结果: ``` max_speed shield cobra 1 2 viper 4 5 ``` 通过这些例子,可以看到DataFrame.loc函数在数据检索时的高效性和灵活性,无论你需要选择单个行、多行,还是根据条件筛选数据,都可以轻松实现。掌握这个功能对于数据分析和数据清洗工作至关重要。