当涉及到选择pandas DataFrame的行和列时,loc和iloc是两个常用的函数。
下面是这两个函数之间的细微差别:
- 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中执行其他常见操作: