使用条件过滤数据框

时间:2017-05-05 09:59:11

标签: python pandas

我创建了一个这样的数据框:

d = {"one":[1,2,3],"two":[[["c",3],["a",4]],["b",5],["a",6]]}
pd.DataFrame(d)

我的问题是:如何过滤出“2”列仅包含“a”的新数据框

Expected result

2 个答案:

答案 0 :(得分:2)

这应该适合你:

df.loc[df["two"].astype(str).str.contains("a")] 

答案 1 :(得分:0)

您可以使用apply方法返回布尔值的掩码,可用于选择正确的索引。我们的想法是定义一个您希望对Series的每个元素执行操作的函数,并将其(使用apply)应用于整个系列。

def fun(element):
    print(element)
    if type(element[0])==list:
        l=[e[0]=='a' for e in element]
    else:
        l = [element[0]=='a']

    if True in l:
        return True
    else:
        return False

df[df.two.apply(fun)]