基于列和行-pandas中的Max值从文件中删除重复项



我有一个场景,我有以下数据

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

在这里,我试图删除基于colAC的重复行,但保持基于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

最新更新