pandas loc 详解

pandas loc 详解

参考:pandas loc

在数据分析和数据处理中,pandas 是 Python 中最受欢迎的库之一。它提供了大量的功能来处理和分析数据。其中,loc 方法是用于数据选择和修改的重要工具。本文将详细介绍 loc 方法的使用,包括其语法、功能以及通过示例代码展示其在实际问题中的应用。

1. loc 方法概述

loc 方法是 pandas DataFrame 中用于基于标签的索引选择数据的方法。它允许用户通过指定行标签和列标签来选择数据子集。

基本语法

loc 方法的基本语法如下:

DataFrame.loc[row_indexer, column_indexer]
  • row_indexer:可以是单个标签、标签列表或标签范围,用于指定行。
  • column_indexer:可以是单个标签、标签列表或标签范围,用于指定列。

2. 选择单个行或列

示例代码 1:选择单个行

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc['pandasdataframe.com1']
print(result)

Output:

pandas loc 详解

示例代码 2:选择单个列

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[:, 'Name']
print(result)

Output:

pandas loc 详解

3. 选择多个行或列

示例代码 3:选择多个行

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[['pandasdataframe.com1', 'pandasdataframe.com3']]
print(result)

Output:

pandas loc 详解

示例代码 4:选择多个列

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[:, ['Name', 'Gender']]
print(result)

Output:

pandas loc 详解

4. 使用切片选择数据

示例代码 5:行切片

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc['pandasdataframe.com1':'pandasdataframe.com2']
print(result)

Output:

pandas loc 详解

示例代码 6:列切片

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[:, 'Name':'Age']
print(result)

Output:

pandas loc 详解

5. 布尔索引

示例代码 7:使用布尔条件选择行

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[df['Age'] > 25]
print(result)

Output:

pandas loc 详解

示例代码 8:结合多个条件

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[(df['Age'] > 25) & (df['Gender'] == 'Male')]
print(result)

Output:

pandas loc 详解

6. 使用 loc 修改数据

示例代码 9:修改单个值

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df.loc['pandasdataframe.com1', 'Age'] = 26
print(df)

Output:

pandas loc 详解

示例代码 10:修改一整行数据

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df.loc['pandasdataframe.com1'] = ['Alicia', 27]
print(df)

Output:

pandas loc 详解

7. 使用 loc 插入数据

示例代码 11:在 DataFrame 中插入新行

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df.loc[3] = ['David', 40]
print(df)

Output:

pandas loc 详解

示例代码 12:在 DataFrame 中插入新列

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df.loc[:, 'Gender'] = ['Female', 'Male', 'Male']
print(df)

Output:

pandas loc 详解

8. 结合函数使用 loc

示例代码 13:使用自定义函数修改数据

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])

def increment_age(age):
    return age + 1

df.loc[:, 'Age'] = df['Age'].apply(increment_age)
print(df)

Output:

pandas loc 详解

示例代码 14:使用 lambda 函数进行条件修改

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df.loc[df['Age'] > 25, 'Age'] = df.loc[df['Age'] > 25, 'Age'].apply(lambda x: x + 1)
print(df)

Output:

pandas loc 详解

9. 高级应用

示例代码 15:结合条件和复杂索引

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[(df['Age'] > 25) & (df['Gender'] == 'Male'), ['Name', 'Age']]
print(result)

Output:

pandas loc 详解

示例代码 16:使用 loc 进行复杂的行列选择

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
result = df.loc[df['Age'] > 25, 'Name':'Gender']
print(result)

Output:

pandas loc 详解

10. 使用 loc 进行删除操作

示例代码 17:删除特定行

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df.drop('pandasdataframe.com1', inplace=True)
print(df)

Output:

pandas loc 详解

示例代码 18:条件删除行

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df = df.loc[df['Age'] > 25]
print(df)

Output:

pandas loc 详解

11. 使用 loc 进行数据排序

示例代码 19:对选定的列进行排序

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [35, 25, 30]}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df.sort_values(by='Age', inplace=True)
print(df)

Output:

pandas loc 详解

示例代码 20:对多列进行排序

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [35, 25, 30], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['pandasdataframe.com1', 'pandasdataframe.com2', 'pandasdataframe.com3'])
df.sort_values(by=['Gender', 'Age'], ascending=[True, False], inplace=True)
print(df)

Output:

pandas loc 详解

12. 结论

本文详细介绍了 pandas 的 loc 方法,从基本用法到高级应用,通过多个示例代码展示了如何在实际问题中有效地使用 loc 进行数据选择、修改、插入和删除等操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程