Python中Pandas iloc 切片技巧详解

2023-12-25 14:59:43


iloc是Pandas库中用于位置索引的方法,它允许根据行和列的位置来选择数据。

iloc的基本语法如下:

data.iloc[行位置,?列位置]

其中,行位置和列位置可以是整数、整数列表、切片或布尔值数组。


一. 基本的iloc切片

1. 选择特定的行和列

要选择特定的行和列,只需指定它们的位置。例如,选择第一行和第二列的数据:

import?pandas?as?pd

data?=?pd.DataFrame({'A':?[1,?2,?3],?'B':?[4,?5,?6],?'C':?[7,?8,?9]})
result?=?data.iloc[0,?1]
print(result)??#?输出:?4

2. 切片多行或多列

可以使用切片操作选择多行或多列。例如,选择前两行和前两列的数据:

result?=?data.iloc[:2,?:2]
print(result)
#?输出:
#????A??B
#?0??1??4
#?1??2??5

二. 使用整数列表

?选择特定的行和列

使用整数列表,可以选择特定的行和列。例如,选择第一行和第三行,以及第二列和第三列的数据:

result?=?data.iloc[[0,?2],?[1,?2]]
print(result)
#?输出:
#????B??C
#?0??4??7
#?2??6??9

三. 使用布尔值数组

1. 根据条件选择数据

iloc还可以与布尔值数组一起使用,以根据条件选择数据。例如,选择满足条件的行:

condition?=?data['A']?>?1
result?=?data.iloc[condition]
print(result)
#?输出:
#????A??B??C
#?1??2??5??8
#?2??3??6??9

2. 设置值

还可以使用iloc来设置特定位置的值。例如,将第一行、第二列的值设置为100:

data.iloc[0,?1]?=?100
print(data)
#?输出:
#?????A????B??C
#?0???1??100??7
#?1???2????5??8
#?2???3????6??9

四. 列的切片

除了对行进行切片,iloc还允许对列进行切片。这对于选择特定的数据列非常有用。以下是一些示例代码:

1. 选择连续的列

可以使用切片来选择连续的列。例如,选择第一列到第三列的数据:

result?=?data.iloc[:,?0:3]??#?选择所有行的第1列到第3列(包括第3列)
print(result)

2. 选择不连续的列

如果想选择不连续的列,可以使用整数列表。例如,选择第一列和第三列的数据:

result?=?data.iloc[:,?[0,?2]]??#?选择所有行的第1列和第3列
print(result)

五. 切片的进阶用法

iloc还支持更复杂的切片操作,包括条件筛选、跳跃切片和逆序切片。以下是一些示例代码:

1. 根据条件筛选

可以使用条件表达式来筛选数据。例如,选择'A'列中大于2的行:

result?=?data.iloc[data['A']?>?2]
print(result)

2. 跳跃切片

跳跃切片是选择不连续行和列的一种方法。例如,选择第1、3、5行和第2、4列的数据:

result?=?data.iloc[::2,?1::2]
print(result)

3. 逆序切片

如果需要逆序选择行或列,可以使用负数索引。例如,选择倒数第二行和倒数第二列到最后一列的数据:

result?=?data.iloc[-2,?-2:]
print(result)

六. 总结

通过本文中介绍的详细内容和丰富的示例代码,现在应该更加了解Python中Pandas库的iloc切片技巧。iloc是一个强大的工具,能够根据位置轻松选择和操作数据,包括选择特定的行和列、使用整数列表、使用布尔值数组、设置值以及对连续和不连续的行和列进行切片操作。熟练掌握这些技巧可以更加灵活地处理和分析DataFrame中的数据,满足各种数据处理需求。无论是初学者还是有经验的数据分析师,这些技巧都将帮助大家更好地利用Pandas库进行数据操作和分析。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

文章来源:https://blog.csdn.net/Rocky006/article/details/135165302
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。