繁体   English   中英

Python:在一列中具有相同值的行的pandas数据框比较

[英]Python: pandas dataframe comparison of rows with the same value in one column

我有一个数据框,看起来像:

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

谢谢

尝试对过滤器使用groupby

df.groupby('name').filter(
     lambda x: len(x) > 1 and x['num_1'].iloc[1] > x['num_2'].iloc[0])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM