Pandas loc函数详解

Pandas loc函数详解

参考:pandas loc function

pandas是一个强大的Python数据分析库,它提供了丰富的数据结构和数据操作方法,使得数据分析变得更加简单高效。在pandas库中,DataFrame对象是最常用的数据结构之一,它是一个二维的、表格型的数据结构。DataFrame提供了多种方法来进行数据的访问和修改,其中loc函数是一个非常重要的数据访问功能,它允许我们通过标签选择数据。

本文将详细介绍loc函数的用法,并通过多个示例代码来展示其在数据分析中的应用。

1. loc函数的基本用法

loc函数主要用于通过标签索引来选择数据。它可以接受的输入包括:

  • 单个标签
  • 标签列表
  • 标签切片
  • 布尔数组
  • 可调用函数

示例代码1:使用单个标签选择数据行

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[0]
print(result)

Output:

Pandas loc函数详解

示例代码2:使用标签列表选择多行数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[[0, 2]]
print(result)

Output:

Pandas loc函数详解

示例代码3:使用标签切片选择连续的多行数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[0:1]
print(result)

Output:

Pandas loc函数详解

示例代码4:使用布尔数组选择数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[df['Age'] > 30]
print(result)

Output:

Pandas loc函数详解

示例代码5:使用可调用函数进行数据选择

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[lambda df: df['Name'] == 'Bob']
print(result)

Output:

Pandas loc函数详解

2. loc函数的高级用法

loc函数不仅可以用于行的选择,还可以同时选择行和列。当选择行和列时,我们需要提供两个参数,第一个参数用于选择行,第二个参数用于选择列。

示例代码6:选择特定行和列

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[0, 'Name']
print(result)

Output:

Pandas loc函数详解

示例代码7:使用切片同时选择多行多列

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[0:2, 'Name':'Email']
print(result)

Output:

Pandas loc函数详解

示例代码8:使用布尔数组和列名列表选择数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[df['Age'] > 25, ['Name', 'Email']]
print(result)

Output:

Pandas loc函数详解

示例代码9:使用布尔数组和列切片选择数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[df['Age'] > 25, 'Name':'Email']
print(result)

Output:

Pandas loc函数详解

示例代码10:使用loc进行条件修改

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df.loc[df['Age'] > 30, 'Name'] = 'Updated Name'
print(df)

Output:

Pandas loc函数详解

3. loc函数与其他索引方法的比较

在pandas中,除了loc函数之外,还有ilocat等数据访问方法。iloc是基于整数位置的数据选择方法,而at则是用于访问单个元素的快速方法。在实际使用中,选择合适的数据访问方法可以提高代码的可读性和执行效率。

示例代码11:使用iloc选择数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.iloc[0]
print(result)

Output:

Pandas loc函数详解

示例代码12:使用at访问单个元素

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.at[0, 'Name']
print(result)

Output:

Pandas loc函数详解

示例代码13:使用loc进行复杂条件的行选择

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
result = df.loc[(df['Age'] > 25) & (df['Name'].str.startswith('C'))]
print(result)

Output:

Pandas loc函数详解

示例代码14:使用loc选择并更新多列数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df.loc[df['Age'] > 25, ['Name', 'Email']] = ['Updated Name', 'updated@pandasdataframe.com']
print(df)

Output:

Pandas loc函数详解

示例代码15:使用loc根据索引排序选择数据

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df_sorted = df.sort_values(by='Age')
result = df_sorted.loc[df_sorted['Age'] > 25]
print(result)

Output:

Pandas loc函数详解

示例代码16:使用loc与isin函数进行筛选

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
ages = [25, 35]
result = df.loc[df['Age'].isin(ages)]
print(result)

Output:

Pandas loc函数详解

示例代码17:使用loc进行多条件筛选并修改指定列

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df.loc[(df['Age'] > 25) & (df['Name'] == 'Bob'), 'Email'] = 'bob_updated@pandasdataframe.com'
print(df)

Output:

Pandas loc函数详解

示例代码18:使用loc添加新列

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df.loc[:, 'Status'] = 'Active'
print(df)

Output:

Pandas loc函数详解

示例代码19:使用loc删除行

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df = df.loc[df['Name'] != 'Bob']
print(df)

Output:

Pandas loc函数详解

示例代码20:使用loc进行复杂的数据操作

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Email': ['alice@pandasdataframe.com', 'bob@pandasdataframe.com', 'charlie@pandasdataframe.com']
}
df = pd.DataFrame(data)
df.loc[df['Age'] > 25, ['Age', 'Email']] = [28, 'age_updated@pandasdataframe.com']
print(df)

Output:

Pandas loc函数详解

4. 结论

通过本文的介绍和示例代码,我们可以看到loc函数在pandas中的强大功能和灵活性。无论是进行数据的选择、修改还是复杂的条件筛选,loc都能提供有效的解决方案。掌握loc函数的使用,对于提高数据处理的效率和质量具有重要意义。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程