一、Pandas中loc函数的用法
loc是一种基于label的索引方式,可以通过行、列的名称来获取相应的元素。它的使用方法如下:
df.loc[row_indexer,column_indexer]
这里row_indexer表示行的索引,column_indexer表示列的索引。
具体的使用场景如下:
- 按照 label 来选取数据
从DataFrame中向loc传递一个label值,可以按照这个label值来选取数据。例如,可以按照行索引(index)选取数据如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5, 4), index=['a', 'b', 'c', 'd', 'e'], columns=['A', 'B', 'C', 'D'])
print(df.loc['a'])
运行结果如下:
A -0.809420
B -0.156268
C 0.887195
D -1.773864
Name: a, dtype: float64
在这个例子中,我们使用了row indexer ‘a’来选取数据,输出结果为’a’这行的所有数据。
- loc也可以同时使用布尔类型的数组来选取数据
在loc中使用布尔类型的数组,可以通过布尔类型的数组来选取数据。例如,可以使用下面的例子来过滤’male’这一行的数据:
df = pd.read_csv('example.csv')
print(df.loc[df['Gender'] == 'male'])
运行结果如下:
Index Age Gender Title Firstname Lastname Balance
0 1 35 male Mr. Peter Standin 100.256320
1 2 42 male Prof. Andrew Gee 200.789132
3 4 24 male Mr. Aaron Smith 57.234345
在这个例子中,我们使用了一个布尔类型的数组来选取数据,选取的条件是Gender等于’male’。
- 多重操作
借助 ‘:’ 等操作,可以同时选取多个行或者列。例如,使用下面的例子来选取前两行的数据:
df = pd.read_csv('example.csv')
print(df.loc[0:1])
运行结果如下:
Index Age Gender Title Firstname Lastname Balance
0 1 35 male Mr. Peter Standin 100.256320
1 2 42 male Prof. Andrew Gee 200.789132
在这个例子中,我们使用了一个row indexer 0:1 来选取前两行的数据。
二、Pandas中iloc函数的用法
和loc函数不同,iloc使用的是int类型的索引方式,可以用数字来获取相应的元素。它的使用方法如下:
df.iloc[row_indexer,column_indexer]
这里row_indexer表示行的索引,column_indexer表示列的索引,都是int类型的。
使用方法如下:
- 按照 integer 值来选取数据
使用iloc中的行、列索引时,使用整数来表示。例如,可以使用下面的例子来选取第一行的数据:
df = pd.DataFrame(np.random.randn(5, 4), columns=['A', 'B', 'C', 'D'])
print(df.iloc[0])
运行结果如下:
A -0.298694
B 0.232828
C -0.695246
D 0.181489
Name: 0, dtype: float64
在这个例子中,我们使用了row indexer 0来选取第一行的数据。
- iloc也可以同时使用布尔类型的数组来选取数据
iloc中使用布尔类型的数组,可以通过布尔类型的数组来选取数据。例如,可以使用下面的例子来选取’male’这一行的数据:
df = pd.read_csv('example.csv')
print(df.iloc[df['Gender'] == 'male'])
运行结果如下:
Index Age Gender Title Firstname Lastname Balance
0 1 35 male Mr. Peter Standin 100.256320
1 2 42 male Prof. Andrew Gee 200.789132
3 4 24 male Mr. Aaron Smith 57.234345
在这个例子中,我们使用了一个布尔类型的数组来选取数据,选取的条件是,Gender等于’male’。
两者的区别:
-
loc函数基于行列标签,即可以使用行列名字来进行数据选择,而iloc函数基于行列的位置编号进行数据选择。
-
loc函数能够使用切分的方法,选取连续的行或者列。而iloc函数则只能选取单个的行或者列,不支持切分。
-
当使用整数型数据作为标签使用时,应当优先使用loc函数。而当使用位置编号选择时,应当优先使用iloc函数。
综上所述,我们基于以上实例,详细讲解了Pandas之中loc函数的使用以及和iloc函数使用区别。