2016-09-22 26 views
1

當系列由ndarray組成時,我想按值創建子系列。當每個值是一個ndarray時,通過值獲取熊貓子系列

這一個工程。

sa = pd.Series([1,2,35,2],index=list('abcd')) 
sa[sa==2] 

結果

b 2 
d 2 
dtype: int64 

爲什麼下面的代碼不工作?我應該改變什麼?它提供了一個ValueError:長度必須匹配比較

sa2 = pd.Series([np.array(['out']), np.array(['2f-right', '2f']), np.array(['out', '2f']), np.array(['out'])], index=list('abcd')) 
ar = np.array(['out']) 
sa2[sa2 == ar] 

回答

2

比較運營商不知道如何與NP陣列相等比較,你在這兒可以使用applylambda

In [211]: 
sa2[sa2.apply(lambda x: (x == ar).all())] 

Out[211]: 
a [out] 
d [out] 
dtype: object 

所以在這裏,我們與數組進行比較並使用all生成布爾掩碼