gpt4 book ai didi

python - 如何删除每行中的重复列表( Pandas )?

转载 作者:行者123 更新时间:2023-11-28 18:07:02 25 4
gpt4 key购买 nike

我在每一行中都有一个列表,我想通过保留得分中的最高值来删除重复的元素。

这是我来自数据框 df1 的数据

        pair    score
0 [A , A ] 1.0000
1 [A , F ] 0.9990
2 [A , G ] 0.9985
3 [A , G ] 0.9975
4 [A , H ] 0.9985
5 [A , H ] 0.9990

我希望看到的结果是

            pair    score
0 [A , A ] 1.0000
1 [A , F ] 0.9990
2 [A , G ] 0.9985
4 [A , H ] 0.9990

我尝试过使用 group by 并设置一个 score = max,但它不起作用

最佳答案

首先,我认为在 pandas 中使用 list 不是 good idea .

如果将列表转换为带有元组的辅助列,则解决方案有效 - 然后 sort_valuesdrop_duplicates :

df['new'] = df.pair.apply(tuple)
df = df.sort_values('score', ascending=False).drop_duplicates('new')
print (df)
pair score new
0 [A, A] 1.0000 (A, A)
1 [A, F] 0.9990 (A, F)
5 [A, H] 0.9990 (A, H)
2 [A, G] 0.9985 (A, G)

或者到 2 个新列:

df[['a', 'b']] = pd.DataFrame(df.pair.values.tolist())
df = df.sort_values('score', ascending=False).drop_duplicates(['a', 'b'])
print (df)
pair score a b
0 [A, A] 1.0000 A A
1 [A, F] 0.9990 A F
5 [A, H] 0.9990 A H
2 [A, G] 0.9985 A G

关于python - 如何删除每行中的重复列表( Pandas )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949798/

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