【问题标题】:Python: pandas dataframe comparison of rows with the same value in one columnPython:熊猫数据框比较一列中具有相同值的行
【发布时间】:2018-02-01 21:02:41
【问题描述】:

我有一个如下所示的数据框:

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

谢谢

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    尝试使用 groupby 和过滤器

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      相关资源
      最近更新 更多