我有一个PandasDataFrame,我想按A列分组,并检查B组中的某个值("test")在每组中重复的次数不超过一次。
Pandas有没有一种土生土长的方式来做以下事情:
1-查找B列中出现多次"test"的组?
2-删除其他事件(保留C列中具有最小值的事件)。
示例:
A B C
0 1 test 342
1 1 t 4556
2 1 te 222
3 1 test 56456
4 2 t 234525
5 2 te 123
6 2 test 23434
7 3 test 777
8 3 tes 665
如果我按"A"分组,我得到"tests"在A == 1中出现两次,这是我想要处理情况。
1条答案
按热度按时间9lowa7mx1#
按列
A,B
删除重复test
值的解决方案-保留每组的第一个值:编辑:如果需要最小
C
与B
中的test
匹配,并且需要所有可能重复的最小C
值,请通过GroupBy.transform
进行比较,并将C
替换为Series.mask
中的NaN
:但是,如果只需要第一个复制的
test
值,则使用DataFrameGroupBy.idxmin
和过滤的DataFrame:溶液差异:
一个三个三个一个