如何过滤在按日期排序的特定单词列表之后保留行的数据框?我有一个看起来像的 df
Name Date Event Col1
0 Sam 1/1/2020 Apple Test1
1 Sam 1/2/2020 Apple Test2
2 Sam 1/3/2020 BALL Test1
3 Sam 1/3/2020 CAT Test2
4 Sam 1/5/2020 BALL Test2
5 Sam 1/6/2020 Apple Test3
6 Nick 1/5/2020 CAT Test3
7 Nick 1/6/2020 BALL Test3
8 Nick 1/7/2020 Apple Test3
9 Nick 1/8/2020 Apple Test4
10 Cat 1/1/2020 Apple Test1
11 Cat 1/2/2020 Bat Test2
df=pd.DataFrame({'Name': {0: 'Sam',
1: 'Sam',
2: 'Sam',
3: 'Sam',
4: 'Sam',
5: 'Sam',
6: 'Nick',
7: 'Nick',
8: 'Nick',
9: 'Nick',
10: 'Cat',
11: 'Cat '},
'Date': {0: '1/1/2020',
1: '1/2/2020',
2: '1/3/2020',
3: '1/3/2020',
4: '1/5/2020',
5: '1/6/2020',
6: '1/5/2020',
7: '1/6/2020',
8: '1/7/2020',
9: '1/8/2020',
10: '1/1/2020',
11: '1/2/2020'},
'Event': {0: 'Apple',
1: 'Apple',
2: 'BALL',
3: 'CAT',
4: 'BALL',
5: 'Apple',
6: 'CAT',
7: 'BALL',
8: 'Apple',
9: 'Apple',
10: 'Apple',
11: 'Bat'},
'Col1': {0: 'Test1',
1: 'Test2',
2: 'Test1',
3: 'Test2',
4: 'Test2',
5: 'Test3',
6: 'Test3',
7: 'Test3',
8: 'Test3',
9: 'Test4',
10: 'Test1',
11: 'Test2'}})
我想保留在我的活动中发生 BALL 或 CAT 的最早日期之后的行。因此,在我的示例中,我需要消除第 1、2 行和第 11 行,因为我们将 Apple 作为第一个事件。
我尝试使用
event_filter = ['BALL','CAT']
df = df.loc[df['Event'].isin(event_filter)]
我还尝试删除基于事件的子集,但它也删除了第 8 行。
任何帮助,将不胜感激。我期待的结果是:
Name Date Event Col1
0 Sam 1/3/2020 BALL Test1
1 Sam 1/3/2020 CAT Test2
2 Sam 1/5/2020 BALL Test2
3 Sam 1/6/2020 Apple Test3
4 Nick 1/5/2020 CAT Test3
5 Nick 1/6/2020 BALL Test3
6 Nick 1/7/2020 Apple Test3
7 Nick 1/8/2020 Apple Test4
8 Cat 1/2/2020 Bat Test2
临摹微笑
慕勒3428872
相关分类