gpt4 book ai didi

pandas - 根据优先级列表从 Pandas 中的另一个字段中删除 1 个字段上的重复项

转载 作者:行者123 更新时间:2023-12-02 08:17:18 26 4
gpt4 key购买 nike

我有大量数据,我试图根据 2 个字段删除重复项。样本集:

WOE_ID  ISO Locationname    Language    Placetype   Parent_ID   ID  Username
2347578 US Maine ENG State 23424977 1 sampleuser
2444322 US Maine ENG Town 12588275 1 sampleuser
2444324 US Maine ENG Town 12588852 1 sampleuser
2444326 US Maine ENG POI 12589403 1 sampleuser
2444327 US Maine ENG Town 12587582 1 sampleuser
2444325 US Maine ENG Country 12589315 1 sampleuser
28744443US Maine ENG Town 12590578 1 sampleuser
2444323 US Maine ENG Town 2374968 1 sampleuser

由于这些都是 ID (1) 的重复值,我只想保留最大的 Placetype 条目(这里是国家,其中国家>州>城镇>POI)。有没有一种简单的方法可以做到这一点,我忽略了还是必须编写一个循环来比较所有条目?我宁愿不这样做,因为总数据库中有超过 300 万个条目,我可能不得不多次运行它。

提前致谢!

最佳答案

我想你可以使用ordered Categorical ,然后排序 DataFrame按栏目 Placetype来自 sort_values 然后 groupby 与聚合 first :

print (df)
WOE_ID ISO Locationname Language Placetype Parent_ID ID Username
0 2347578 US Maine ENG State 23424977 1 sampleuser
1 2444322 US Maine ENG Town 12588275 1 sampleuser
2 2444324 US Maine ENG Town 12588852 1 sampleuser
3 2444326 US Maine ENG POI 12589403 2 sampleuser
4 2444327 US Maine ENG Town 12587582 2 sampleuser
5 2444325 US Maine ENG Country 12589315 3 sampleuser
6 28744443 US Maine ENG Town 12590578 3 sampleuser
7 2444323 US Maine ENG Town 2374968 3 sampleuser


df.Placetype = df.Placetype.astype('category',
categories=['Country','State','Town','POI'],
ordered=True)

df = df.sort_values('Placetype').groupby('ID', as_index=False).first()
print (df)
ID WOE_ID ISO Locationname Language Placetype Parent_ID Username
0 1 2347578 US Maine ENG State 23424977 sampleuser
1 2 2444327 US Maine ENG Town 12587582 sampleuser
2 3 2444325 US Maine ENG Country 12589315 sampleuser

关于pandas - 根据优先级列表从 Pandas 中的另一个字段中删除 1 个字段上的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40868156/

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