Pandas:根据将函数应用于另一列的值筛选一列



假设我有一个df,它有两列a和B,还有一个类Foo((,它可以用a的值实例化。我想得到一个满足Foo(a(.item.price==0的B的唯一序列。我尝试了以下代码,但显然不起作用。

unique_B = df.loc[Foo(df.A.str).item.price == 0, "B"].unique()

我想我可以创建第三列来存储foo(df.a(的值,有更简单的解决方案吗?

使用df.A.apply(foo)而不是foo(df.A.str):

unique_B = df.loc[df.A.apply(foo) == 0, "B"].unique()

访问foo类的item属性:

unique_B = df.loc[df.A.apply(lambda x: foo(x).item.price) == 0, "B"].unique()

最新更新