我有一个场景,我有以下数据
A B C D E F
a il ilp kjh 2020 1
a il ilp kjh 2021 2
a il ilp kjh 2021 3
b kl ilp kjh 2020 1
b kl hjk operio 2020 1
在这里,我试图删除基于colA
C
的重复行,但保持基于colF
的最大值这是我所做的
df=pd.DataFrame(data)
df['E'] = pd.to_datetime(df['E'], unit='ms').dt.date #this I would need to do as original data is in epoch format
df = df.groupby(['A', 'C']).max()['F'].reset_index()
这给了我正确的结果,但是其他列(D, E)在CSV输出中被删除我也想相应地保留它们,但我不希望删除基于这两个(D, E)列的重复项。
期望输出:
A B C D E F
a il ilp kjh 2021 3
b kl ilp oper 2020 1
b kl hjk operio 2020 1
任何帮助都将是伟大的
您可以首先按F
排序值,然后删除重复项,仅保留最后重复项:
df = df.sort_values(by="F")
df = df.drop_duplicates(["A", "C"], keep="last")
print(df)
打印:
A B C D E F
3 b kl ilp kjh 2020 1
4 b kl hjk operio 2020 1
2 a il ilp kjh 2021 3