You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不转换字符串的情况下筛选Pandas Series中等于指定numpy数组的元素?

筛选Series中特定numpy数组元素的方法

要筛选出Series s中与np.array(['x'])完全相等的元素,可以借助np.array_equal()函数实现——该函数会严格比较数组的形状和元素内容,无需将数组转换为字符串。

方法一:使用apply结合np.array_equal

import numpy as np
import pandas as pd

data = [
    np.array(['x'], dtype='object'),
    np.array(['y'], dtype='object'),
    np.array(['z'], dtype='object'),
    np.array(['x', 'z', 'y'], dtype='object'),
    np.array(['y', 'x'], dtype='object'),
]    
s = pd.Series(data)

c = np.array(['x'])
# 生成布尔索引并筛选目标元素
result = s[s.apply(lambda arr: np.array_equal(arr, c))]

方法二:列表推导式生成掩码

如果觉得apply不够直观,也可以用列表推导式先构建布尔掩码:

mask = [np.array_equal(arr, c) for arr in s]
result = s[mask]

两种方法都能准确匹配到目标数组,且不受元素是单元素还是多元素数组的影响。

内容的提问来源于stack exchange,提问作者MaxPowers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:41:11