我有一个像下面这样的 Dataframe :
date|point|agent
2023-10-02|A|agent1
2023-10-02|A|agent2
2023-10-05|B|agent3
2023-10-05|B|agent2
2023-10-02|C|agent1
2023-10-02|C|agent2
2023-10-02|C|agent3
字符串
在每一天的特定点上,应该只有两个代理。有情况下,有两个以上,我想返回那些我想返回的行,有两个以上的代理。
我使用groupby首先计数:
df.groupby(['point','date'])['agent'].nunique()>2
型
我可以用
df['agent_count'] = df.groupby(['point','date'])['agent'].transform('nunique')
型
然后获取大于2的行。但是有没有其他方法,而没有冗余数据?我使用loc
和iloc
,where
和exh给了我很多错误。我正在寻找一种有效的方法来返回行,而不需要将计数添加到嵌套框中。我在这里探索了两个小时的问题,但没有一个是有效的。
2条答案
按热度按时间ccrfmcuu1#
个字符
piztneat2#
你的思路是对的。下面是你如何在一条线上做到这一点。
字符串