如何只对pandas中组内的某些行进行排序?

时间:2018-03-31 00:26:20

标签: python pandas

我有一个按df分组的数据框ID。对于每个组,有一行具有标志,该标志标识其第一个实例'First' == 1

我最终希望按承认日期对每个组进行排序,但是,我需要'First' == 1行作为该组的第一行,无论其日期如何。然后我想根据允许日期对剩余的行进行排序。

示例df

ID     admit     discharge    discharge_location   first
20     3-4-2018  3-6-2018     Home                 1
20     2-2-2018  2-6-2018     Home                 0
20     2-5-2018  2-23-2018    Home                 0
30     1-2-2018  2-3-2018     Home                 0
30     1-15-2018 1-18-2018    Home                 1
30     1-20-2018 1-24-2018    Home                 0

预期df

ID     admit     discharge    discharge_location   first
20     3-4-2018  3-6-2018     Home                 1
20     2-2-2018  2-6-2018     Home                 0
20     2-5-2018  2-23-2018    Home                 0
30     1-15-2018 1-18-2018    Home                 1
30     1-2-2018  2-3-2018     Home                 0
30     1-20-2018 1-24-2018    Home                 0

我的方法并不考虑组中第一个“第一”列。

df.sort_values(by=['ID','admit'], inplace=True)

这一直困扰着我。

1 个答案:

答案 0 :(得分:5)

这里是兄弟,

0