Python 一系列阵列的滤波

Python 一系列阵列的滤波,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个熊猫系列,里面有阵列,看起来像这样: [80]中的set.tail(7) 出[80]: 区块编号 942[b'?'] 943[b'?'] 944[b'??',b'\xff'] 945[b'?'] 65280[b'\xff\xff'] 65281[b'\xff\xff'] 65535[b'\xff\xff',b'\x01\xa0',b'\x81\xa0',b'\x01。。。 名称:块标题,数据类型:对象 我试图筛选出数组中具有b'\x3f3f'的行(块编号值),并且它必须是数组中的唯一值

我有一个熊猫系列,里面有阵列,看起来像这样:

[80]中的
set.tail(7)
出[80]:
区块编号
942[b'?']
943[b'?']
944[b'??',b'\xff']
945[b'?']
65280[b'\xff\xff']
65281[b'\xff\xff']
65535[b'\xff\xff',b'\x01\xa0',b'\x81\xa0',b'\x01。。。
名称:块标题,数据类型:对象
我试图筛选出数组中具有
b'\x3f3f'
的行(块编号值),并且它必须是数组中的唯一值

我从一个df的groupby那里得到了这个系列,类似这样:

set=frame[['block\u number','block\u header']]
.groupby(['block\u number'])['block\u header'].agg('unique'))
我正在努力在这个系列中使用.where()w/lambda,我想这对于熊猫第一次使用来说还不够简单

感谢您的帮助,谢谢!

我想您需要条件-通过
中的
检查
数组中的值,并获取
数组的长度:

s = frame[['block_number', 'block_header']]
          .groupby(['block_number'])['block_header'].agg('unique')

a = b'\x3f3f'
mask = (s.apply(lambda x: a in x)) & (s.str.len() == 1)
out = s[~mask]

黑魔法,就像一个符咒。回到文档来了解它是如何工作的:-)所有文档都说“.str可以用来以字符串的形式访问序列的值,并对其应用多种方法”-在这种情况下,它似乎可以工作(它返回数组的len())-但我不明白为什么,我希望它会被转换成字符串或其他奇怪的东西。你知道这到底是如何工作的吗?是的,这有点复杂。但列中一些值的列表或数组的长度与字符串的长度相同。检查它
print(len('aaaa'))
print(len([1,2,3,4])