使用布尔语句和操作原始数据框

Using Boolean Statements and manipulating original dataframe

所以,我有一个看起来像这样的数据框:

有 308 个不同 ORIGIN_CITY_NAME 和 12 个不同 UNIQUE_CARRIER。

我正在尝试删除唯一承运航空公司数量小于 5 的城市因此,我执行了此功能:

现在,我想获取此结果并处理我的原始数据 df,以便我可以删除 ORIGIN_CITY_NAME 对应于 TRUE 的行。

我有一个想法是在 Python 中使用 isin() 函数或 apply(lambda) 函数,但我不熟悉如何去做。有没有更优雅的方法来解决这个问题?谢谢!

filter 是为此而制作的

df.groubpy('ORIGIN_CITY_NAME').filter(
    lambda d: d.UNIQUE_CARRIER.nunique() >= 5
)

但是,要继续沿着您试图从中获得结果的方向前进......

我会用 map

mask = df.groubpy('ORIGIN_CITY_NAME').UNIQUE_CARRIER.nunique() >= 5

df[df.ORIGIN_CITY_NAME.map(mask)]

transform

mask = df.groupby('ORIGIN_CITY_NAME').UNIQUE_CARRIER.transform(
    lambda x: x.nunique() >= 5
)

df[mask]