我有一个类似于:
的数据框id name num_1 num_2
1 A 12 14
1 A 15
2 B 10 9
3 C 19 18
3 C 16
我想要的输出是:
id name num_1 num_2
1 A 12 14
1 A 15
基本上我想要具有相同id的行,其中第二行的num_1大于第一行的num_2。数据框按id和num_1排序。可能有些ID我只有一行,应该从最终的数据帧中排除。我知道我可以遍历数据帧以获得我正在寻找的东西,但我想知道是否有更好的方法来做到这一点。我也尝试使用shif使它工作,但它给了我不正确的结果:
id name num_1 num_2
1 A 15
2 B 10 9
3 C 19 18
由于
答案 0 :(得分:1)
尝试将groupby与过滤器
一起使用df.groupby('name').filter(
lambda x: len(x) > 1 and x['num_1'].iloc[1] > x['num_2'].iloc[0])