gpt4 book ai didi

pandas - 删除不等于唯一项目值的行 - Pandas

转载 作者:行者123 更新时间:2023-12-04 07:56:00 29 4
gpt4 key购买 nike

我有一个 df ,其中包含与唯一值关联的各种字符串。对于这些唯一值,我想删除不等于单独列表的行,最后一行除外。
下面使用 Label 中的各种字符串值与 Item 相关联.所以对于每个唯一的 ItemLabel 中可能有多行与各种字符串。我只想保留 label_list 中的字符串,除了最后一行。
我不确定我可以用另一种方式来做这件事,因为字符串的数量不在 label_list 中。太多了。订购车也各不相同。因此对于 Item 中的每个唯一值,我真的只想要最后一行和 label_list 中的任何行.

label_list = ['A','B','C','D']

df = pd.DataFrame({
'Item' : [10,10,10,10,10,20,20,20],
'Label' : ['A','X','C','D','Y','A','B','X'],
'Count' : [80.0,80.0,200.0,210.0,260.0,260.0,300.0,310.0],
})

df = df[df['Label'].isin(label_list)]
预期输出:
   Item Label  Value
0 10 A 80.0
1 10 C 200.0
2 10 D 210.0
3 10 Y 260.0
4 20 A 260.0
5 20 B 300.0
6 20 X 310.0

最佳答案

这是一个快速而肮脏的解决方案:df = pd.concat([df[df['Label'].isin(label_list)],df.drop_duplicates('Item',keep='last')]).drop_duplicates(keep='first')我们将添加每个 Item 的最后一行组,但如果最后一行被复制,因为它也在 label_list 中我们也在为连接的输出使用删除重复项。

关于pandas - 删除不等于唯一项目值的行 - Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66701327/

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