Python 3.x 如何在dataframe的列(numpy对象)中找到满足条件的索引?

Python 3.x 如何在dataframe的列(numpy对象)中找到满足条件的索引?,python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我有一个数据框,其中包含numpy object列。数据如下: data 0 [1, 2, 2, 3, 4, 2] 1 [2, 4, 2, 5, 2, 3, 2] 2 [2, 2, 2, 8, 2, 3, 2, 9, 1] ... data index 0 [1, 2, 2, 3, 4, 2] [0,4] 1

我有一个数据框,其中包含
numpy object
列。数据如下:

                          data
0           [1, 2, 2, 3, 4, 2]
1        [2, 4, 2, 5, 2, 3, 2]
2  [2, 2, 2, 8, 2, 3, 2, 9, 1]
...
                          data    index
0           [1, 2, 2, 3, 4, 2]    [0,4]
1        [2, 4, 2, 5, 2, 3, 2]    [1,3]
2  [2, 2, 2, 8, 2, 3, 2, 9, 1]    [3,7]
...
我想获取列中每个numpy的索引,以满足以下条件:
(>(mean+std))或(我认为您需要:

df['index']=df['data'].map(lambda x:np.where(np.logical_或
.减少(((x>x.mean()+x.std()),
(x
对于验证解决方案:

df['index'] = df['data'].map(lambda x: ((x > x.mean() + x.std())))
df['index1'] = df['data'].map(lambda x: ((x < x.mean() - x.std())))
#https://stackoverflow.com/a/33375383/2901002
with pd.option_context('display.max_colwidth', 200):
    print (df)

                          data  \
0           [1, 2, 2, 3, 4, 2]   
1        [2, 4, 2, 5, 2, 3, 2]   
2  [2, 2, 2, 8, 2, 3, 2, 9, 1]   

                                                           index  \
0                      [False, False, False, False, True, False]   
1                [False, True, False, True, False, False, False]   
2  [False, False, False, True, False, False, False, True, False]   

                                                            index1  
0                        [True, False, False, False, False, False]  
1                [False, False, False, False, False, False, False]  
2  [False, False, False, False, False, False, False, False, False]  
df['index']=df['data'].map(λx:((x>x.mean()+x.std()))
df['index1']=df['data'].map(λx:((x
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
df['index'] = df['data'].map(lambda x: np.where(np.logical_or
                                                  .reduce(((x > x.mean() + x.std()), 
                                                           (x < x.mean() - x.std()))))[0])
print (df)
                          data   index
0           [1, 2, 2, 3, 4, 2]  [0, 4]
1        [2, 4, 2, 5, 2, 3, 2]  [1, 3]
2  [2, 2, 2, 8, 2, 3, 2, 9, 1]  [3, 7]
df['index'] = df['data'].map(lambda x: ((x > x.mean() + x.std())))
df['index1'] = df['data'].map(lambda x: ((x < x.mean() - x.std())))
#https://stackoverflow.com/a/33375383/2901002
with pd.option_context('display.max_colwidth', 200):
    print (df)

                          data  \
0           [1, 2, 2, 3, 4, 2]   
1        [2, 4, 2, 5, 2, 3, 2]   
2  [2, 2, 2, 8, 2, 3, 2, 9, 1]   

                                                           index  \
0                      [False, False, False, False, True, False]   
1                [False, True, False, True, False, False, False]   
2  [False, False, False, True, False, False, False, True, False]   

                                                            index1  
0                        [True, False, False, False, False, False]  
1                [False, False, False, False, False, False, False]  
2  [False, False, False, False, False, False, False, False, False]