Pandas中的loc和iloc都是用来选择数据的方法,主要作用是在DataFrame中根据行、列的标签或位置进行数据的选择和切片。
具体来说,loc通过标签选择数据,iloc通过位置选择数据。loc和iloc都可以使用切片和布尔索引,还支持多层索引和高级索引等操作。
下面详细介绍一下这两种方法的用法:
loc方法
loc方法是通过行标签和列标签来访问数据的。语法如下:
df.loc[row_label, col_label]
其中,row_label可以是单个标签、标签列表或切片,用于定位行;col_label也可以是单个标签、标签列表或切片,用于定位列。如果要选择所有行或所有列,可以使用“:”作为标签。
示例代码:
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])
# 通过单个标签访问数据
print(df.loc['a', 'A']) # 输出 1
# 通过标签列表访问数据
print(df.loc[['a', 'b'], ['A', 'B']]) # 输出
# A B
# a 1 4
# b 2 5
# 通过切片访问数据
print(df.loc['a':'c', 'A':'B']) # 输出
# A B
# a 1 4
# b 2 5
# c 3 6
# 选择所有行和所有列
print(df.loc[:, :]) # 输出
# A B C
# a 1 4 7
# b 2 5 8
# c 3 6 9
iloc方法
iloc方法是通过行索引和列索引来访问数据的。语法如下:
df.iloc[row_index, col_index]
其中,row_index可以是单个索引、索引列表或切片,用于定位行;col_index也可以是单个索引、索引列表或切片,用于定位列。如果要选择所有行或所有列,可以使用“:”作为索引。
示例代码:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'age': [25, 30, 35, 40, 45],
'score': [88, 92, 95, 70, 65]}
df = pd.DataFrame(data)
# 选择第2行
print(df.iloc[1])
# 选择第2到第4行,第1到第2列
print(df.iloc[1:4, 0:2])
# 选择多行,单列
print(df.iloc[[0, 2, 4], 0])
输出结果为:
name Bob
age 30
score 92
Name: 1, dtype: object
name age
1 Bob 30
2 Charlie 35
3 David 40
0 Alice
2 Charlie
4 Emily
Name: name, dtype: object
需要注意的是,loc和iloc选择行和列的方式略有不同,loc是按照标签索引,而iloc是按照整数位置索引。另外,使用loc和iloc时可以省略行或列的位置或标签,例如df.loc[:, 'name']表示选择所有行的name列。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas loc、iloc用法详解 - Python技术站