按pid分组取最小vid后如何保留DataFrame类型而非Series?
解决分组后保留两列DataFrame的问题
有两种简单方法可以让你得到包含pid和对应最小vid的两列DataFrame:
方法1:使用reset_index()
在现有代码基础上,调用reset_index()将索引列pid转为普通列:
hf_patients_min_visit = filtered_hf_patients.groupby('pid')['vid'].min().reset_index()
或者先转DataFrame再重置索引:
hf_patients_min_visit = filtered_hf_patients.groupby('pid')['vid'].min().to_frame().reset_index()
两种写法都会把pid从索引转为DataFrame的一列,最终得到形状为(2960,2)的结果。
方法2:分组时设置as_index=False
直接在groupby中添加as_index=False参数,分组结果不会将pid设为索引,直接生成两列DataFrame:
hf_patients_min_visit = filtered_hf_patients.groupby('pid', as_index=False)['vid'].min()
这种写法更简洁,一步到位得到你需要的结构。
内容的提问来源于stack exchange,提问作者Kin_99
相关产品推荐
相关产品推荐

