Pandas loc、iloc用法详解

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列。

本文链接:https://my.lmcjl.com/post/20004.html

展开阅读全文

4 评论

留下您的评论.