下面是关于“聊聊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都可以用于数据访问和操作,但是它们之间还存在一些差别:
- loc是基于标签(label)进行索引,而iloc是基于位置(index)进行索引;
- loc函数包含左右边界(闭合),而iloc函数则不包含右边界(开放);
- 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技术站