使用布尔语句和操作原始数据框
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]
所以,我有一个看起来像这样的数据框:
有 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]