pythonpandas

Pandas: compare list objects in Series


In my dataframe a column is made up of lists, for example:

df = pd.DataFrame({'A':[[1,2],[2,4],[3,1]]})

I need to find out the location of list [1,2] in this dataframe. I tried:

df.loc[df['A'] == [1,2]]

and

df.loc[df['A'] == [[1,2]]]

but failed totally. The comparison seems very simple but that just doesn't work. Am I missing something here?


Solution

  • Do not use list in cell, it creates a lot of problem for pandas. If you do need an object column, using tuple:

    df.A.map(tuple).isin([(1,2)])
    Out[293]: 
    0     True
    1    False
    2    False
    Name: A, dtype: bool
    #df[df.A.map(tuple).isin([(1,2)])]