聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明

下面是关于“聊聊Python pandas中loc函数的使用,及跟iloc的区别说明”的完整攻略。

一、loc的使用

1. loc简介

loc是一种通过标签(label)来访问pandas数据的函数,该函数的用法如下:

DataFrame.loc[indexes]
DataFrame.loc[indexes, column_names]

其中,indexes表示要根据标签(column/row name)来获取的数据行/列位置信息,column_names则是对应要获取的数据列名。

2. loc的用途

loc主要用于按标签进行数据访问和修改操作。可以通过一个或多个条件来筛选出相应的行或列,并对其进行操作。

3. 示例一:使用loc函数根据标签进行数据访问

考虑一个简单的示例:假设有如下数据集合:

import pandas as pd
data = {'name':['Jack', 'Jenny', 'Mike', 'Lucy', 'Lily'], 
        'age':[25, 30, 24, 28, 29], 
        'gender':['M', 'F', 'M', 'F', 'F']}
df = pd.DataFrame(data)
df.set_index('name', inplace=True)
print(df)

输出结果如下:

       age gender
name            
Jack    25      M
Jenny   30      F
Mike    24      M
Lucy    28      F
Lily    29      F

我们可以使用loc函数,来获取特定标签的数据。如:

print(df.loc[['Jenny','Lucy']])

输出结果如下:

       age gender
name            
Jenny   30      F
Lucy    28      F

由此可见,loc函数可以根据标签获取对应的数据行。

4. 示例二:使用loc函数按照特定条件进行数据筛选和操作

还是以上述数据集合为例,考虑使用loc函数筛选出年龄大于25岁的数据,并对其进行性别修改的操作。具体代码如下:

df.loc[df['age'] > 25, 'gender'] = 'UNKNOWN'
print(df)

输出结果如下:

       age   gender
name              
Jack    25        M
Jenny   30  UNKNOWN
Mike    24        M
Lucy    28  UNKNOWN
Lily    29  UNKNOWN

由此可见,loc函数可以根据特定条件进行行级别(loc函数第一个参数)和列级别(loc函数第二个参数)操作。

二、loc与iloc的区别

虽然loc和iloc都可以用于数据访问和操作,但是它们之间还存在一些差别:

  1. loc是基于标签(label)进行索引,而iloc是基于位置(index)进行索引;
  2. loc函数包含左右边界(闭合),而iloc函数则不包含右边界(开放);
  3. loc函数可以使用标签的名称或者True/False列表作为过滤条件,而iloc只能使用行数或者列数作为过滤条件;

1. 示例三:使用iloc函数进行数据访问

考虑使用iloc函数,获取行号为1,2,3的数据。具体代码如下:

print(df.iloc[[1,2,3]])

输出结果如下:

       age gender
name            
Jenny   30      F
Mike    24      M
Lucy    28      F

由此可见,iloc函数可以根据数据集合的位置信息,来获取对应的数据行。

2. 示例四:使用iloc函数按照特定位置进行数据筛选和操作

再考虑使用iloc函数,获取前三行的所有数据,并将它们的性别修改为'UNKNOWN'。具体代码如下:

df.iloc[:3, 1] = 'UNKNOWN'
print(df)

输出结果如下:

       age   gender
name              
Jack    25  UNKNOWN
Jenny   30  UNKNOWN
Mike    24  UNKNOWN
Lucy    28        F
Lily    29        F

由此可见,iloc函数虽然不能使用标签名称进行过滤,但是可以使用数据集合的位置信息进行访问和操作。

综上所述,虽然loc和iloc都可以用于数据访问和操作,但是它们之间存在一些差别和限制。使用时,应当根据具体需求选择最为适合的函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 将数据追加到一个空的Pandas数据框中

    当我们需要将一些数据以行的形式添加到一个空的Pandas数据框中时,可以遵循以下的步骤: 步骤一:创建空的数据框 首先需要创建一个空的数据框,通过指定数据框的列名和数据类型来构建一个数据框的框架。以下示例展示了如何创建一个空数据框,包含两列,分别是”id”和”value”。 import pandas as pd df = pd.DataFrame(colu…

    python-answer 2023年3月27日
    00
  • Mysql中错误使用SQL语句Groupby被兼容的情况

    MySQL中,Group By语句是用来对查询结果进行分组的,通常与聚合函数配合使用,比如SUM、AVG、COUNT等。不过,如果在Group By语句中错误使用不兼容的SQL语句,就会导致查询结果不准确,这可能会影响业务逻辑和数据分析等方面。下面将详细讲解Mysql中错误使用SQL语句Groupby被兼容的情况的完整攻略和相关示例说明。 1. 不兼容SQL…

    python 2023年5月14日
    00
  • 在Python中使用Pandas替换缺失值

    首先需要明确什么是缺失值(Missing value)。在Pandas中,缺失值通常用NaN(Not a number)表示。 Pandas提供了很多函数可以对缺失值进行操作。下面是一个完整的例子,让你了解在Python中如何使用Pandas替换缺失值。 # 导入Pandas库 import pandas as pd # 创建一个数据帧 df = pd.Da…

    python-answer 2023年3月27日
    00
  • 使用python读取.text文件特定行的数据方法

    使用Python读取文本文件的特定行数据可以通过以下步骤实现: 打开文本文件 逐行读取文本文件 获取目标行数据 关闭文本文件 其中,第三步需要利用Python内置函数或模块来实现。下面是两种常用的方法: 方法一:使用内置函数readlines() with open(‘example.txt’, ‘r’) as f: lines = f.readlines(…

    python 2023年6月13日
    00
  • 使用Pandas apply()方法返回多列数据

    Pandas是Python中一个非常流行的数据处理和分析库,也是数据分析中不可或缺的组件之一。在使用Pandas的过程中,我们常常需要进行一些复杂的数据转换和处理操作。Pandas提供了很多灵活和强大的方法和函数,其中之一就是apply()方法。apply()方法可以接受一个自定义的函数,并且可以返回多列数据。本文就详细讲解如何使用apply()方法返回多列…

    python-answer 2023年3月27日
    00
  • pandas创建DataFrame的7种方法小结

    下面是关于“pandas创建DataFrame的7种方法小结”的详细攻略。 概述 DataFrame是Pandas中最重要的数据结构之一,它将数据组织成列和行的形式,类似于Excel表格。本文将介绍Pandas中不同的方法来创建DataFrame的七种方法。 Pandas创建DataFrame的7种方法小结 以下是Pandas中创建DataFrame的7种方…

    python 2023年5月14日
    00
  • 用Pandas和Seaborn进行KDE绘图可视化

    Pandas是Python数据分析的重要工具,Seaborn是建立在matplotlib之上的一个数据可视化库,它非常适合用于统计数据分析和探索性数据分析(EDA)。 下面,我们来详细讲解使用Pandas和Seaborn进行KDE(核密度估计)绘图可视化的步骤。 导入相关库 在进行绘图之前,我们必须需要先导入相关的库。 import pandas as pd…

    python-answer 2023年3月27日
    00
  • 按标签名称或按索引位置在DataFrame中删除列

    删除列是数据分析中常用的操作之一,Pandas提供了按标签名称或按索引位置删除列的方法,下面是详细的攻略: 按标签名称删除列 按标签名称删除列可以通过DataFrame的drop方法实现,具体步骤如下: 确定要删除的列的标签名称是什么,例如我们要删除列名为col1的列; 使用drop方法删除列,其中参数labels传入一个列表,包含要删除的列标签名称,参数a…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部