Pandas:通过将函数应用于另一列的值过滤一列?

Pandas: Filter a column by the value from applying a function to another column?

假设我有一个包含 2 列 A 和 B 的 df 和一个 class 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()

访问 item 属性 的 foo class:

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