pandas dataframe loc vs iloc

pandas dataframe loc vs iloc

参考:pandas dataframe loc vs iloc

在数据分析中,我们经常需要对数据进行各种操作,如选择、修改、删除等。在pandas库中,我们可以使用loc和iloc方法来完成这些操作。这两种方法都是用来选择数据的,但是它们的使用方式和适用场景有所不同。本文将详细介绍pandas dataframe的loc和iloc方法,以及它们的区别和使用场景。

1. loc方法

loc方法是基于标签的数据选择方法,它可以接受的参数包括:

  • 单个标签。例如:5或’a’,这里的5指的是标签而不是索引位置。
  • 标签列表。例如:[‘a’, ‘b’, ‘c’]。
  • 切片对象。例如:’a’:’f’,注意这里和普通的Python切片不同,包含末端。
  • 布尔数组。
  • 可返回标签的函数或参数。

下面我们通过一些示例来详细介绍loc方法的使用。

import pandas as pd
import numpy as np

# 创建一个dataframe
df = pd.DataFrame(np.arange(16).reshape(4, 4), 
                  index=['Ohio', 'Colorado', 'Utah', 'New York'], 
                  columns=['one', 'two', 'three', 'four'])
print(df)

# 使用单个标签选择数据
print(df.loc['Colorado', 'two'])

# 使用标签列表选择数据
print(df.loc[['Colorado', 'Utah'], ['two', 'three']])

# 使用切片对象选择数据
print(df.loc['Colorado':'Utah', 'two':'three'])

# 使用布尔数组选择数据
print(df.loc[df['three'] > 5, ['two', 'three']])

# 使用可返回标签的函数选择数据
print(df.loc[lambda df: df['three'] > 5, ['two', 'three']])

Output:

pandas dataframe loc vs iloc

2. iloc方法

iloc方法是基于位置的数据选择方法,它可以接受的参数包括:

  • 单个整数。例如:5。
  • 整数列表。例如:[4, 3, 0]。
  • 整数切片对象。例如:1:7。
  • 布尔数组。
  • 可返回位置的函数或参数。

下面我们通过一些示例来详细介绍iloc方法的使用。

import pandas as pd
import numpy as np

# 创建一个dataframe
df = pd.DataFrame(np.arange(16).reshape(4, 4), 
                  index=['Ohio', 'Colorado', 'Utah', 'New York'], 
                  columns=['one', 'two', 'three', 'four'])
print(df)

# 使用单个整数选择数据
print(df.iloc[1, 1])

# 使用整数列表选择数据
print(df.iloc[[1, 2], [1, 2]])

# 使用整数切片对象选择数据
print(df.iloc[1:3, 1:3])

# 使用布尔数组选择数据
print(df.iloc[df['three'] > 5, [1, 2]])

# 使用可返回位置的函数选择数据
print(df.iloc[lambda df: df['three'] > 5, [1, 2]])

3. loc vs iloc

loc和iloc虽然都是用来选择数据的,但是它们的使用方式和适用场景有所不同。

  • loc是基于标签的数据选择方法,它可以接受的参数包括:单个标签、标签列表、切片对象、布尔数组、可返回标签的函数或参数。当我们知道标签的名称时,可以使用loc方法。

  • iloc是基于位置的数据选择方法,它可以接受的参数包括:单个整数、整数列表、整数切片对象、布尔数组、可返回位置的函数或参数。当我们知道数据的具体位置(例如第一行、第二列)时,可以使用iloc方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程