pandas dataframe loc和iloc
参考:pandas dataframe loc and iloc
在Python的数据处理库pandas中,DataFrame是一种二维的数据结构,非常适合处理表格型或异质型数据。在处理DataFrame时,我们经常需要对数据进行索引、选择和修改。pandas提供了多种索引方式,其中最常用的就是loc和iloc。本文将详细介绍pandas DataFrame的loc和iloc的用法。
1. loc
loc是基于标签的数据选择方法,它意味着我们要传入的是列名和行名。
示例代码1
Output:
示例代码2
Output:
示例代码3
Output:
示例代码4
Output:
示例代码5
Output:
2. iloc
iloc是基于位置的数据选择方法,它意味着我们要传入的是行号和列号。
示例代码6
Output:
示例代码7
Output:
示例代码8
Output:
示例代码9
Output:
示例代码10
Output:
3. loc和iloc的区别
loc和iloc的主要区别在于,loc是基于标签的,而iloc是基于位置的。这意味着,当我们使用loc时,我们传入的是行标签和列标签,而当我们使用iloc时,我们传入的是行号和列号。
此外,loc包含了结束标签,而iloc不包含结束位置。这意味着,如果我们使用df.loc[0:2]
,我们会得到第0行到第2行的所有行,包括第2行;而如果我们使用df.iloc[0:2]
,我们会得到第0行和第1行,不包括第2行。
示例代码11
Output:
示例代码12
Output:
4. loc和iloc的使用场景
在实际使用中,我们通常会根据具体的需求来选择使用loc还是iloc。
如果我们知道行标签和列标签,或者我们需要通过条件(如某列的值大于0)来选择数据,那么我们可以使用loc。如果我们知道行号和列号,或者我们需要选择某个范围内的数据(如前10行或者后5列),那么我们可以使用iloc。
示例代码13
Output:
示例代码14
Output:
5. loc和iloc的注意事项
在使用loc和iloc时,我们需要注意以下几点:
- loc和iloc都是只读的,也就是说,我们不能通过loc和iloc来修改DataFrame的结构(如添加或删除行列)。但是,我们可以通过loc和iloc来修改DataFrame的值。
-
如果我们传入的标签或位置不存在,loc和iloc会抛出错误。因此,我们在使用loc和iloc时,最好先确认我们传入的标签或位置是否存在。
-
在使用条件选择时,我们需要确保条件的长度和DataFrame的行数相同。否则,pandas会抛出错误。
示例代码15
Output:
示例代码16
Output:
6. 结论
总的来说,pandas的loc和iloc都是非常强大的数据选择工具,它们可以帮助我们方便地选择和修改数据。在实际使用中,我们可以根据具体的需求和场景,灵活地选择使用loc还是iloc。