过滤数据帧使用条件

2024-04-26 23:33:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我的问题是:如何过滤掉列“two”只包含“a”的新数据帧

Expected result


Tags: 数据dataframeonepdtwo
2条回答

可以使用^{}方法返回布尔值掩码,该掩码可用于选择正确的索引。其思想是定义一个函数,该函数将作用于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)]

这应该对你有用:

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

相关问题 更多 >