gpt4 book ai didi

python - 删除 Pandas 数据框中出现次数少于 N 次的所有值匹配索引

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:45 26 4
gpt4 key购买 nike

我有一个由 item_id 索引的 pandas 数据框,每个项目的行数不同(也就是说,item_id X 可能有 10 行,而项目 Y 可能只有 1 行)。我想要做的是从数据框中删除与只有一行的那些 item_ids 对应的所有行(即删除所有只有一个观察的项目)。因此,如果数据帧的样本如下所示:

item_id measure1    measure2 ...
1 someNumber someNumber
1 someNumber someNumber
1 someNumber someNumber
2 someNumber someNumber
3 someNumber someNumber
3 someNumber someNumber
4 someNumber someNumber
5 someNumber someNumber
5 someNumber someNumber

新的数据框应该是这样的:

item_id measure1    measure2   ...
1 someNumber someNumber
1 someNumber someNumber
1 someNumber someNumber
3 someNumber someNumber
3 someNumber someNumber
5 someNumber someNumber
5 someNumber someNumber

也就是说,我想删除只有一个观察项的所有数据(在本例中,item_ids 2 和 4)。

最佳答案

您可以使用groupbyfilter:

>>> df.groupby("item_id").filter(lambda x: len(x) > 1)
item_id measure1 measure2
0 1 someNumber someNumber
1 1 someNumber someNumber
2 1 someNumber someNumber
4 3 someNumber someNumber
5 3 someNumber someNumber
7 5 someNumber someNumber
8 5 someNumber someNumber

事实上,这与 the docs 中的示例之一非常相似.


请注意,在评论中进行一些讨论后,很明显在某些情况下这似乎在 0.12 中不起作用,但在当前主干中有效。我相信这已在 this commit 中修复通过 jreback,如果我正在阅读过滤器结果类型的正确分支,从而避免了困难。

关于python - 删除 Pandas 数据框中出现次数少于 N 次的所有值匹配索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508042/

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