gpt4 book ai didi

python - 有条件删除 Pandas 中的重复条目

转载 作者:行者123 更新时间:2023-12-01 09:05:17 25 4
gpt4 key购买 nike

如何删除下面给出的 Pandas DataFrame 中的重复条目。

a   b   c   d
11216 08-08-2018 2000 SIP
40277 28-08-2018 1000 SIP
44165 02-08-2018 8000 Lump
44165 03-08-2018 5000 Lump
45845 16-08-2018 25000 Lump
45845 18-08-2018 50000 Lump
52730 13-08-2018 10000 Lump
52730 27-08-2018 10000 Lump
53390 20-08-2018 400000 Lump
56180 02-08-2018 1000 Lump
58537 11-07-2018 5000 Lump
58537 22-08-2018 2000 SIP
912813 15-08-2018 160001 Lump
912813 15-08-2018 6000 SIP
85606 16-08-2018 3500 SIP
88327 06-08-2018 5000 SIP
90240 07-08-2018 2000 SIP

期望的结果:

a   b   c   d
11216 08-08-2018 2000 SIP
40277 28-08-2018 1000 SIP
44165 02-08-2018 8000 Lump
45845 16-08-2018 25000 Lump
52730 13-08-2018 10000 Lump
53390 20-08-2018 400000 Lump
58537 11-07-2018 5000 Lump
912813 15-08-2018 160001 Lump
912813 15-08-2018 6000 SIP
85606 16-08-2018 3500 SIP
88327 06-08-2018 5000 SIP
90240 07-08-2018 2000 SIP

条件是:删除 if a2==a1b2<>b1 .

最佳答案

您可以排序,然后将重复条件一起使用:

res = df.sort_values(['a', 'b'])\
.loc[(~df['a'].duplicated()) | df[['a', 'b']].duplicated(keep=False)]

print(res)

a b c d
0 11216 08-08-2018 2000 SIP
1 40277 28-08-2018 1000 SIP
2 44165 02-08-2018 8000 Lump
4 45845 16-08-2018 25000 Lump
6 52730 13-08-2018 10000 Lump
8 53390 20-08-2018 400000 Lump
9 56180 02-08-2018 1000 Lump
10 58537 11-07-2018 5000 Lump
14 85606 16-08-2018 3500 SIP
15 88327 06-08-2018 5000 SIP
16 90240 07-08-2018 2000 SIP
12 912813 15-08-2018 160001 Lump
13 912813 15-08-2018 6000 SIP

关于python - 有条件删除 Pandas 中的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52113834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com