Python:基于排序结果的数据过滤

时间:2019-02-27 12:56:48

标签: python pandas python-2.7

我有一个带有示例数据的数据框,像这样;

ID,CLASS,CLASS_ID,EXPIRY,VOLUME
1,012345,12,70,100
2,987654,99,10,800
3,012345,11,70,200
4,012345,10,60,700
5,987654,24,20,300
6,012345,06,70,900
7,987654,08,60,500

议程是选择具有最大EXPIRY的那些不同的记录。如果为987654,则为

7,987654,08,60,500

我可以很容易地做到这一点,

df.sort_values(['CLASS','EXPIRY'], inplace=True, ascending=False)
df.drop_duplicates(subset=['CLASS'], inplace=True)

但是如果012345有多个记录,且到期日为70。因此,在这种情况下(即,基于CLASSEXPIRY进行排序后,当且仅当找到了多个具有最高值EXPIRY的记录时),从具有最高VOLUME记录中选择具有最高EXPIRY的记录。这就是我的问题。

预期输出:

ID,CLASS,CLASS_ID,EXPIRY,VOLUME
7,987654,08,60,500
6,012345,6,70,900    #this record has greatest `VOLUME` among the records having common `EXPIRY`

有人可以用Python的方式帮助吗?

0 个答案:

没有答案