Pandas库中loc和iloc的详细解析与Python应用
在 Python 的 Pandas 库中,loc 和 iloc 是用于选择 DataFrame 或 Series 数据的两种常用索引方法。它们功能类似,但有重要的区别。
先创建一个Dataframe
import pandas as pd
# 创建 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data, index=['x', 'y', 'z'])
loc:通过显式名称访问
获取行数据
df.loc['x']
df.loc['y']
df.loc['x','A']
df.loc['z','B']
切片
df.loc[1:2]
报错
df.loc['x':'y']
df.loc['x':'y','A':'B']
df.loc['x':'y',['A','C']]
df.loc[:'y','B':]
df.loc[df['A']==2,'B']#求A的值是2的元素对应的B值是多少
df.loc[df['B']>4,'C']
插入一道题目:
编写一个解决方案,选择 student_id = 101 的学生的 name 和 age 并输出。
返回结果格式如下示例所示。
import pandas as pd
def selectData(students: pd.DataFrame) -> pd.DataFrame:
return students.loc[students["student_id"]==101,['name','age']]
iloc:基于位置的索引方式访问
取行
df.iloc[0]#第一行
df.iloc[1]#第二行
df.iloc[2]#第三行
取列
df.iloc[:,0]#第一列
df.iloc[:,1]#第二列
df.iloc[:,2]#第三列
切片
df.iloc[:2,:]#切片
df.iloc[:,:2]#切片
df.iloc[1:,:2]#切片
总结
主要区别
小技巧
作者:算法小菜鸟moon