python - Python Dataframe删除特定值出现超过10次的行
问题描述
我有以下数据(只是一张图片,数字继续):
import pandas as pd
df = pd.DataFrame({'Flight Day': ['2018-10-01', '2018-10-01','2018-10-01', '2018-10-01', '2018-10-02','2018-10-02', '2018-10-02', '2018-10-02', '2018-10-03','2018-10-03','2018-10-03','2018-10-03'],
'Flight Number': ['CA1336', 'CA1332', 'CA1472', 'CA1473', 'CA1355', 'CA1331', 'CA1666', 'CA1665', 'CA1366', 'CA1337', 'CA1489', 'CA1667'],
'STD Departure': [10, 15, 8, 11,10, 15, 8, 14,10, 15, 8, 11],
'Bircher': [2, 4, 8, 4,3, 2, 3, 1,5, 5, 2, 1],
'Carac': [2, 4, 8, 4,2, 2, 3, 4,2, 5, 2, 1]})
我只想保留最后 10 次出现的相同“航班号”和“STD 出发”,并删除最后 10 次出现之前的行。例如,在我有最后 10 行已经符合条件之前删除 LX1336(航班号)10(STD 出发)的行,因此有 LX1336(航班号)10(STD 出发)。我在 CSV 文档中有所有航班号,如果有帮助,STD 出发总是从 0 到 23。是否有针对此问题的简短代码?非常感谢您的帮助!
解决方案
您可以GroupBy.head
为此使用:
df.groupby(['Flight Number','STD Departure']).head(10)
编辑
如果您想要最后 10 个,只需GroupBy.tail
按照@jondiedoop 的建议使用:
df.groupby(['Flight Number','STD Departure']).tail(10)
推荐阅读
- python - 将数据发布到 python 中的 java web 服务
- git - 每次构建时,Visual Studio(或 GIT)总是将 DLL 显示为修改后的文件
- c - 将 CS50 的 Resize(不太舒服)调整为 Resize(更舒服)?
- node.js - 我可以采取哪些问题确定步骤来诊断 node.js 中的 webpack 连接问题?
- swift - SwiftUI 中可覆盖的 ButtonStyle
- git - 为什么有些 git 命令只有一个 - 用于附加选项,而其他一些命令有 -
- json - 如何将 Julia 字典键从字符串转换为整数
- python - 简单的python Webserver socket编程
- php - 登录时尝试允许访问页面时无法传输会话 ID
- express - VueJS 方法返回承诺。如何在模板中显示数据