Python Dataframe删除具有10个以上特定值的行

时间:2018-12-05 09:18:26

标签: python python-3.x pandas dataframe slice

我有以下数据(快速浏览,数字继续):

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': [LX1336, LX1337, LX1472, LX1473, LX1336, LX1337, LX1472, LX1473, LX1336, LX1337, LX1472, LX1473]'STD Departure': [10, 15, 8, 11,10, 15, 8, 14,10, 15, 8, 11], 'Bircher': [2, NaN, 8, 4,3, 2, 3, 1,NaN, 5, 2, 1]'Carac': [NaN, 4, 8, 4,NaN, 2, 3, 4,2, 5, 2, 1]})

我只想保留最后10次相同的“航班号”和“ STD出发”,并删除最后10次之前的行。例如,在我具有已经符合资格的最后10行之前,删除LX1336(航班号)10(STD出发)的行,因此要删除LX1336(航班号)10(STD出发)。 我将所有航班号都保存在CSV文档中,如果有帮助,STD出发点总是从0到23。 是否有简短明了的代码来解决此问题? 非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用GroupBy.head

df.groupby(['Flight Number','STD Departure']).head(10)

编辑

如果要使用最后10个,请使用GroupBy.tail代替@jondiedoop建议:

df.groupby(['Flight Number','STD Departure']).tail(10)