You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在pandas中实现Stata collapse (lastnm)功能的方法

在pandas中实现Stata collapse (lastnm) 等效效果

我正在尝试在pandas中复刻Stata的collapse (lastnm)函数效果,现有最小示例数据如下:

import pandas as pd, numpy as np
df = (pd.DataFrame({"group": [1,1,1,1,1,2,2,2,2,2],
                "period":[1,1,2,2,2,1,1,2,2,2],
                "value1": [2,np.NaN,7,8,np.NaN,1,5,4,6,np.NaN],
                "value2": [1,3,np.NaN, 8,np.NaN,1,5,4,6,np.NaN]}))

期望得到的输出结果如下:

collapsed_df = (pd.DataFrame({"group":[1,1,2,2],
                              "period":[1,2,1,2],
                              "value1":[2,8,5,6],
                              "value2":[3,8,5,6]}))

我初步尝试的写法如下:

collapsed_df = df.groupby(["group", "period"])["value1","value2"].last()

我原本担心如果分组内最后一个值为缺失值,该方法会返回缺失值,我想要的是取分组内最后一个非缺失值的效果,类似如下调用形式:

collapsed_df = df.groupby(["group", "period"])["value1","value2"].lastnm()

问题解决说明

后续测试确认,pandas的last()方法默认就会跳过缺失值,返回分组内的最后一个非缺失值,完全符合Stata collapse (lastnm)的功能效果,该问题已解决。

内容的提问来源于stack exchange,提问作者safex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:36:01