Python 如果单元格中的列表包含值,则pandas.series获取布尔值

Python 如果单元格中的列表包含值,则pandas.series获取布尔值,python,pandas,series,Python,Pandas,Series,我有一个熊猫系列,每个单元格都有一个值列表。我想得到一个布尔值,无论单元格中的列表是否包含值 熊猫系列: 0 [1, 2, 2, 2] 1 [1, 2, 2] 2 [1, 2] 3 [1, 2] 4 [1, 2] ... 1697 [1, 1, 1, 2, 2] 1698 [1, 2, 2] 1699

我有一个熊猫系列,每个单元格都有一个值列表。我想得到一个布尔值,无论单元格中的列表是否包含值

熊猫系列:

0          [1, 2, 2, 2]
1             [1, 2, 2]
2                [1, 2]
3                [1, 2]
4                [1, 2]
             ...       
1697    [1, 1, 1, 2, 2]
1698          [1, 2, 2]
1699             [1, 2]
1700          [1, 2, 2]
1701             [1, 2]
“isin”不起作用,“1 in data['top-level']”也不起作用,因为它只是查看1是否在整个系列中,而不是每个单元格中


我希望您能给我一些提示和帮助。

在中结合列表理解使用

mask = [1 in x for x in data['top-level']]
或者在
中使用

或者创建
数据帧
,通过以下方式比较并测试每行至少一个
True

编辑:

打印(数据)
顶级
0  [1,2,2,2]
1    [1,2,2]
2   [1,2, 3]
3    [4,5,6]
数据=数据['top-level']。应用(λx:any((数字>=1)和(数字<2)表示x中的数字))
打印(数据)
0对
1正确
2正确
3错误
名称:顶级,数据类型:bool

谢谢您的回答。有没有办法检查x中的一个值是否在两个值之间?类似于
data['top-level'].apply(lambda x:1是的,但它总是抛出一个错误:
NameError:name'x'未定义
谢谢,这就是我的意思,错误消失了。
mask = data['top-level'].apply(lambda x: 1 in x)
mask = pd.DataFrame(data['top-level'].tolist(), index=data.index).eq(1).any(axis=1)
print (data)
   top-level
0  [1,2,2,2]
1    [1,2,2]
2   [1,2, 3]
3    [4,5,6]

data = data['top-level'].apply(lambda x: any((number >= 1) and (number < 2) for number in x))
print (data)
0     True
1     True
2     True
3    False
Name: top-level, dtype: bool