«

利用NumPy数组在Pandas DataFrame中进行向量化查找

磁力搜索 • 1 天前 • 5 次点击 • 资讯分享


利用numpy数组在pandas dataframe中进行向量化查找

本文介绍了如何使用NumPy数组高效地在Pandas DataFrame中进行向量化查找,避免使用循环,从而显著提升数据处理速度。通过DataFrame.loc方法结合Series.to_list或Series.to_numpy,可以轻松实现基于索引的批量数据检索,并将其转换为列表或NumPy数组,满足不同场景的需求。

在数据分析和处理过程中,经常需要在Pandas DataFrame中根据一组索引查找对应的值。如果使用传统的循环方式,效率会比较低。本文将介绍如何利用NumPy数组和Pandas的向量化操作,高效地完成这个任务。

使用 DataFrame.loc 进行向量化查找

Pandas 提供了 DataFrame.loc 方法,它允许我们使用标签或布尔数组来选择数据。结合NumPy数组,我们可以一次性查找多个索引对应的值,而无需使用循环。

以下是一个示例:

import pandas as pd
import numpy as np

# 创建示例 DataFrame
data = {'HHt': [1, 2, 3, 4, 5, 6, 7, 8]}
df = pd.DataFrame(data, index=range(2643, 2651))

# 定义 NumPy 数组,包含需要查找的索引
ex_arr = np.array([2643, 2644, 2647])

# 使用 DataFrame.loc 进行向量化查找,并转换为列表
result_list = df.loc[ex_arr, 'HHt'].to_list()
print(result_list)

# 使用 DataFrame.loc 进行向量化查找,并转换为 NumPy 数组
result_array = df.loc[ex_arr, 'HHt'].to_numpy()
print(result_array)
登录后复制


    还没收到回复