我创建了一个这样的数据框:
d = {"one":[1,2,3],"two":[[["c",3],["a",4]],["b",5],["a",6]]}
pd.DataFrame(d)
我的问题是:如何过滤出“2”列仅包含“a”的新数据框
答案 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)]