Pandas中loc和iloc的区别

141 阅读2分钟

当涉及到选择pandas DataFrame的行和列时,lociloc是两个常用的函数。

下面是这两个函数之间的细微差别:

  • loc选择具有特定标签的行和列
  • iloc在特定的整数位置选择行和列

下面的例子展示了如何在实践中使用每个函数。

例1:如何在Pandas中使用loc

假设我们有如下的pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [5, 7, 7, 9, 12, 9, 9, 4],
                   'assists': [11, 8, 10, 6, 6, 5, 9, 12]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
df

	team	points	assists
A	A	5	11
B	A	7	8
C	A	7	10
D	A	9	6
E	B	12	6
F	B	9	5
G	B	9	9
H	B	4	12

我们可以使用loc根据索引标签来选择DataFrame的特定行:

#select rows with index labels 'E' and 'F'
df.loc[['E', 'F']]

	team	points	assists
E	B	12	6
F	B	9	5

我们可以使用loc根据标签来选择DataFrame的特定行和特定列:

#select 'E' and 'F' rows and 'team' and 'assists' columns
df.loc[['E', 'F'], ['team', 'assists']]

	team	assists
E	B	12
F	B	9

我们可以使用loc的:参数来根据标签选择行和列的范围:

#select 'E' and 'F' rows and 'team' and 'assists' columns
df.loc['E': , :'assists']

        team	points	assists
E	B	12	6
F	B	9	5
G	B	9	9
H	B	4	12

例2:如何在Pandas中使用iloc

假设我们有如下的pandas DataFrame

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [5, 7, 7, 9, 12, 9, 9, 4],
                   'assists': [11, 8, 10, 6, 6, 5, 9, 12]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
df

	team	points	assists
A	A	5	11
B	A	7	8
C	A	7	10
D	A	9	6
E	B	12	6
F	B	9	5
G	B	9	9
H	B	4	12

我们可以使用iloc根据整数位置来选择DataFrame的特定行:

#select rows in index positions 4 through 6 (not including 6)
df.iloc[4:6]

	team	points	assists
E	B	12	6
F	B	9	5

我们可以使用iloc根据索引位置来选择DataFrame的特定行和特定列:

#select rows in range 4 through 6 and columns in range 0 through 2
df.iloc[4:6, 0:2]

	team	assists
E	B	12
F	B	9

我们可以使用带有:参数的loc来根据其标签选择行和列的范围:

#select rows from 4 through end of rows and columns up to third column
df.iloc[4: , :3]

        team	points	assists
E	B	12	6
F	B	9	5
G	B	9	9
H	B	4	12

其他资源

下面的教程解释了如何在pandas中执行其他常见操作:

如何使用Pandas loc按多个条件选择行
如何在Pandas中基于列值选择行
如何在Pandas中按索引选择行