根据另一个数据框列的值创建新数据框

时间:2017-10-25 10:47:46

标签: python pandas

我有一个如下数据框:

enter image description here

Index   Fruit   ID
0   Apple   0.5
0   Apple   1
1   Orange  1.6
1   Orange  2
2   Banana  2.3
2   Banana  3

我想基于以下算法创建一个新的数据帧:取满足Index + 0.5< = ID的第一行,将行添加到新数据帧,否则添加到下一行。所以结果应该是这样的:

enter image description here

我相信我可以在一个乏味且低效的循环中做到这一点,但知道熊猫非常强大(我对熊猫来说很新),有没有更有效的方法来创建数据帧?

1 个答案:

答案 0 :(得分:0)

IIUC,使用groupby + apply + head

df.groupby('Index', group_keys=False)\
      .apply(lambda x: x[x['Index'] + 0.5 <= x['ID']].head(1))

   Index   Fruit   ID
0      0   Apple  0.5
2      1  Orange  1.6
5      2  Banana  3.0