关键词

聊聊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都可以用于数据访问和操作,但是它们之间存在一些差别和限制。使用时,应当根据具体需求选择最为适合的函数。

本文链接:http://task.lmcjl.com/news/14567.html

展开阅读全文