使用布尔语句并操纵原始数据帧

时间:2017-10-29 00:23:39

标签: python python-3.x pandas data-manipulation

所以,我有一个类似于enter image description here

的数据框

使用308个不同的ORIGIN_CITY_NAME和12个不同的UNIQUE_CARRIER。

我正在尝试删除独特航空公司航班数量的城市。 5因此,我执行了这个功能:

enter image description here

现在,我希望我能够获取此结果并操纵原始数据df,以便我可以删除ORIGIN_CITY_NAME对应的行为TRUE。

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

1 个答案:

答案 0 :(得分:1)

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]