pandas loc vs. iloc vs. at vs. iat

pandas

1个回答

写回答

扬扬g

2025-07-06 20:35

+ 关注

Pandas
Pandas

Pandas loc vs. iloc vs. at vs. iat

在使用Pandas进行数据处理和分析时,经常会遇到需要根据条件或索引来选择和修改数据的情况。在这种情况下,Pandas提供了四种常用的方法来访问和操作数据,分别是loc、iloc、at和iat。这四种方法在使用上略有不同,本文将详细介绍它们的使用方法和区别。

loc方法

loc方法是基于标签进行数据访问和操作的。它接受一个标签或标签列表作为索引,并返回对应的数据行或列。可以通过冒号(:)来选择范围,也可以通过布尔表达式来选择符合条件的数据。

下面是一个使用loc方法的案例代码:

<code>import Pandas as pd

# 创建一个示例DataFrame

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],

'Age': [25, 30, 35, 40],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 使用loc方法选择一行数据

row = df.loc[1]

print(row)

# 使用loc方法选择多行数据

rows = df.loc[[0, 2]]

print(rows)

# 使用loc方法选择指定列的数据

column = df.loc[:, 'Name']

print(column)

# 使用loc方法选择符合条件的数据

filtered = df.loc[df['Age'] > 30]

print(filtered)

</code>

在上面的代码中,首先创建了一个DataFrame对象df,然后使用loc方法选择了不同的数据。第一个例子中,使用loc方法选择了第二行的数据,结果为Bob的信息。第二个例子中,使用loc方法选择了第一行和第三行的数据,结果为Alice和Charlie的信息。第三个例子中,使用loc方法选择了Name列的数据,结果为Name列的所有值。最后一个例子中,使用loc方法选择了Age大于30的数据,结果为Charlie和David的信息。

iloc方法

iloc方法是基于整数位置进行数据访问和操作的。它接受一个整数或整数列表作为索引,并返回对应的数据行或列。也可以通过冒号(:)来选择范围,也可以通过布尔表达式来选择符合条件的数据。

下面是一个使用iloc方法的案例代码:

<code>import Pandas as pd

# 创建一个示例DataFrame

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],

'Age': [25, 30, 35, 40],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 使用iloc方法选择一行数据

row = df.iloc[1]

print(row)

# 使用iloc方法选择多行数据

rows = df.iloc[[0, 2]]

print(rows)

# 使用iloc方法选择指定列的数据

column = df.iloc[:, 0]

print(column)

# 使用iloc方法选择符合条件的数据

filtered = df.iloc[df['Age'] > 30]

print(filtered)

</code>

在上面的代码中,首先创建了一个DataFrame对象df,然后使用iloc方法选择了不同的数据。第一个例子中,使用iloc方法选择了第二行的数据,结果为Bob的信息。第二个例子中,使用iloc方法选择了第一行和第三行的数据,结果为Alice和Charlie的信息。第三个例子中,使用iloc方法选择了第一列的数据,结果为Name列的所有值。最后一个例子中,使用iloc方法选择了Age大于30的数据,结果为Charlie和David的信息。

at方法

at方法是基于标签和整数位置进行数据访问和操作的。它接受一个标签和整数位置作为索引,并返回对应的数据值。只能选择单个数据,不能选择多行或多列。

下面是一个使用at方法的案例代码:

<code>import Pandas as pd

# 创建一个示例DataFrame

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],

'Age': [25, 30, 35, 40],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 使用at方法选择单个数据

value = df.at[1, 'Name']

print(value)

</code>

在上面的代码中,首先创建了一个DataFrame对象df,然后使用at方法选择了一个数据。选择的是第二行、Name列的数据,结果为Bob。

iat方法

iat方法是基于整数位置进行数据访问和操作的。它接受一个整数位置作为索引,并返回对应的数据值。只能选择单个数据,不能选择多行或多列。

下面是一个使用iat方法的案例代码:

<code>import Pandas as pd

# 创建一个示例DataFrame

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],

'Age': [25, 30, 35, 40],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 使用iat方法选择单个数据

value = df.iat[1, 0]

print(value)

</code>

在上面的代码中,首先创建了一个DataFrame对象df,然后使用iat方法选择了一个数据。选择的是第二行、第一列的数据,结果为Bob。

通过以上的介绍和示例代码,我们可以看到loc、iloc、at和iat这四种方法在使用上的区别和灵活性。根据具体的需求和数据结构,选择合适的方法可以更加高效地进行数据处理和分析。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号