在 Python 中使用 'in' 运算符 |特定观察与列

Using the 'in' Operator in Python | Observation Specific vs Columns

如果以下代码有效并等同于'True':

'1234567' in '1234567:AMC'

为什么它在以下 arrays/data-frames/columns 中不起作用?

import pandas as pd

x = {'Non-Suffix' : ['1234567', '1234568', '1234569', '1234554'], 'Suffix' : ['1234567:C', '1234568:VXCF', '1234569-01', '1234554-01:XC']}
x = pd.DataFrame(x)
x


x['Non-Suffix'] in x['Suffix']
# Note: Above line provides error (see below SO screen shot for full error)

以下是我收到的错误消息:

是否可以将“1234567:AMC”逻辑中的“1234567”应用于数据列?

您正在 上使用 in 命令,正如解释器告诉您的那样,这是不可能的。 您必须通过 x['Non-Suffix'].array 使用 pandas 数据框中的数组来访问底层数据数组。然后您将获得实现 in 的基础 。这样就可以了

    import pandas as pd
    x = {'Non-Suffix' : ['1234567', '1234568', '1234569', '1234554'], 
     'Suffix' : ['1234567:C', '1234568:VXCF', '1234569-01', '1234554-01:XC']}
    x = pd.DataFrame(x)
    

    y =  x['Non-Suffix'].array                                                   
                                    
    print( type( y ) )                  
    print( y )        
              
   x['Non-Suffix'].array in x['Suffix'].array

您可以使用apply()进行测试row-wise

x.apply(lambda row: row['Non-Suffix'] in row['Suffix'], axis=1)