【发布时间】:2021-09-13 13:59:08
【问题描述】:
我是 Stack Overflow 的新手,我有这个数据集:
df=pd.DataFrame({'ID': {0: 4, 1: 4, 2: 4, 3: 88, 4: 88, 5: 323, 6: 323},
'Step': {0: 'A', 1: 'Bar', 2: 'F', 3: 'F', 4: 'Bar', 5: 'F', 6: 'A'},
'Num': {0: 38, 1: 38, 2: 38, 3: 320, 4: 320, 5: 433, 6: 432},
'Date': {0: '2018-08-02',
1: '2018-12-02',
2: '2019-03-02',
3: '2017-03-02',
4: '2018-03-02',
5: '2020-03-04',
6: '2020-02-03'},
'Occurence': {0: 3, 1: 3, 2: 3, 3: 2, 4: 2, 5: 2, 6: 2}})
变量 'ID' 和 'Step' 是多索引的。
我想做两件事:
第一:
如果同一“ID”的“Num”不同,则删除该ID的行。
其次:
对于相同的 ID,步骤“F”应该是最后一个(日期最近)。如果不是,则删除该 ID 的行。
我遇到了一些困难,因为命令 df['Step'] 和 df['ID'] 不起作用('ID' 和 'Step' 是最近 groupby() 的多索引原因)。
我尝试了在Multi index dataframe delete row with maximum value per group 上找到的 groupby(level=0)
但我还是有一些困难。
有人可以帮帮我吗?
预期输出:
df=pd.DataFrame({'ID': {0: 4, 1: 4, 2: 4},
'Step': {0: 'A', 1: 'Bar', 2: 'F'},
'Num': {0: 38, 1: 38, 2: 38},
'Date': {0: '2018-08-02',
1: '2018-12-02',
2: '2019-03-02',
'Occurence': {0: 3, 1: 3, 2: 3}})
ID 88 已被删除,因为步骤“F”不是最后一步(日期最近)。 ID 323 已被删除,因为 Num 433!=Num 432。
【问题讨论】:
-
请添加您的预期输出。
-
感谢您的回答。完成。
标签: python pandas multi-index