使用groupby最多保留多列

时间:2019-07-07 15:40:27

标签: python pandas group-by max

我有一个包含这些列(患者健康记录)的DataFrame:

  • HADM_ID(住院号)
  • ITEM_ID(实验室测试的ID,例如=血糖水平为ID 15468)
  • VALUE(实验室的值,例如10.5)
  • CHARTTIME(记录实验室测试的时间)
  • VALUEUOM(我的实验室测试的度量单位,例如g / L)

    print(df_items.columns.tolist())

['HADM_ID','ADMITTIME','ITEMID','CHARTTIME','VALUE','VALUEUOM']

我尝试使用groupby函数,然后进行聚合:

df_items = df_items.groupby(['HADM_ID', 'ITEMID'], sort=False).agg({'VALUE':'max'}).reset_index()

我获得了每个实验室测试的最大值,按ITEMID和HADM_ID分组,很完美。

但是我想保留CHARTTIME和VALUEUOM与特定行关联。

我们可以在stackoverflow的其他地方看到此解决方案:

annotations.ix[annotations.groupby(['bookid'], sort=False)['weight'].idxmax()][['bookid', 'conceptid', 'weight']]

我已经尝试过,但是不起作用(引发ValueError)

非常感谢!

0 个答案:

没有答案