Python Pandas数据分析之iloc和loc的用法详解

  • Post category:Python

我来为你详细讲解 “PythonPandas数据分析之iloc和loc的用法详解” 这个主题。

什么是pandas以及iloc和loc的作用?

pandas是一款提供数据结构和数据分析工具的Python软件包,它被广泛应用于数据预处理、数据清洗、数据分析和数据可视化等领域。pandas主要有两种数据结构:Series和DataFrame。其中,DataFrame是较为常用的数据结构,它是由多个Series通过共享索引(index)而联系在一起的二维表格。loc和iloc都是pandas中的索引器,用于从DataFrame中选择数据。

iloc的用法是通过行号和列号来选择数据,loc的用法则是通过行索引和列索引来选择数据。iloc和loc的主要区别在于传入的索引方式不同,在选择数据时需要注意。

iloc的使用方法

iloc是基于索引的方式选择数据,其完整的语法格式为:

DataFrame.iloc[rows, cols]

其中,rows和cols分别表示需要选择的行号和列号,可以是单个整数、切片对象、由整数组成的列表或数组、布尔值序列(True/False)等。

下面给出一个根据行号和列号选择数据的示例:

import pandas as pd

data = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})
print('data:\n',data)

# 选择第2行第3列数据
res = data.iloc[1, 2]
print('选择第2行第3列数据:', res)

# 选择前2行的第2、3列数据
res = data.iloc[:2, 1:3]
print('选择前2行的第2、3列数据:\n', res)

# 选择第1、3行的第2列数据
res = data.iloc[[0,2], 1]
print('选择第1、3行的第2列数据:\n', res)

运行结果:

data:
    A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
选择第2行第3列数据: 8
选择前2行的第2、3列数据:
    B  C
0  4  7
1  5  8
选择第1、3行的第2列数据:
 0    4
2    6
Name: B, dtype: int64

loc的使用方法

loc是基于标签的方式选择数据,其完整的语法格式为:

DataFrame.loc[rows, cols]

其中,rows和cols分别表示需要选择的行索引和列索引,可以是单个标签、标签切片、由标签组成的列表或数组、布尔值序列(True/False)等。

下面给出一个根据行索引和列索引选择数据的示例:

import pandas as pd

data = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})
data.index = ['one', 'two', 'three']
print('data:\n',data)

# 选择'two'行'C'列数据
res = data.loc['two', 'C']
print('选择\'two\'行\'C\'列数据:', res)

# 选择第1、3行的'B'、'C'列数据
res = data.loc[['one','three'], ['B','C']]
print('选择第1、3行的\'B\'、\'C\'列数据:\n', res)

# 选择所有行的'A'、'C'列数据
res = data.loc[:, ['A','C']]
print('选择所有行的\'A\'、\'C\'列数据:\n', res)

运行结果:

data:
        A  B  C
one    1  4  7
two    2  5  8
three  3  6  9
选择'two'行'C'列数据: 8
选择第1、3行的'B'、'C'列数据:
        B  C
one    4  7
three  6  9
选择所有行的'A'、'C'列数据:
        A  C
one    1  7
two    2  8
three  3  9

通过上述示例可以发现,iloc和loc的使用方法虽然不同,但是都可用于选取DataFrame中的数据,而且可以选择单个数据、一行或一列的数据,或多行和多列的数据。需要注意的是,在选择数据时需要正确传入行号和列号、行索引和列索引,否则会抛出异常。