pandas数据框搜索列表

时间:2018-01-04 14:54:50

标签: python pandas

我试图按列表过滤包含列表行的pandas数据帧。 一个最小的例子是:

>>>import pandas as pd
>>>d={'a':[[1,2],[3,4]], 'b':[['f1','f2'],['f3','f4']]}
>>>ds = pd.DataFrame(d)
>>>ds
        a         b
0  [1, 2]  [f1, f2]
1  [3, 4]  [f3, f4]

>>> ds.a == [1,2]
0    False
1    False
Name: a, dtype: bool

我正在寻找的是一种方法:

    ds.a == [1,2]
    0    True
    1    False

1 个答案:

答案 0 :(得分:0)

使用:

d={'a':[[2,1],[3,4],[1,2]], 'b':[['f1','f2'],['f3','f4'],['f5','f6']]}
ds = pd.DataFrame(d)
print (ds)
        a         b
0  [2, 1]  [f1, f2]
1  [3, 4]  [f3, f4]
2  [1, 2]  [f5, f6]

#not important order - compare set
print (ds.a.apply(set) == set([1,2]))
0     True
1    False
2     True
Name: a, dtype: bool

#important order - compare tuples
print (ds.a.apply(tuple) == tuple([1,2]))
0    False
1    False
2     True
Name: a, dtype: bool