2024-04-26 23:33:09 发布
网友
我创建了这样一个数据框:
d = {"one":[1,2,3],"two":[[["c",3],["a",4]],["b",5],["a",6]]} pd.DataFrame(d)
我的问题是:如何过滤掉列“two”只包含“a”的新数据帧
可以使用^{}方法返回布尔值掩码,该掩码可用于选择正确的索引。其思想是定义一个函数,该函数将作用于Series的每个元素,并将其(使用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)]
这应该对你有用:
df.loc[df["two"].astype(str).str.contains("a")]
可以使用^{} 方法返回布尔值掩码,该掩码可用于选择正确的索引。其思想是定义一个函数,该函数将作用于
Series
的每个元素,并将其(使用apply
)应用于整个系列。在这应该对你有用:
相关问题 更多 >
编程相关推荐