我有一个名为panel_long的熊猫数据帧,看起来像这样: x y z event Startcompany period A 1 1 2 3 False 5B 1 1 2 3 False 7...A 27 1 2 3 True 5B 27 1 2 3 False 7...A 31 1 2 3 False 5B 31 1 2 3 True 7作为使用活动线进行生存分析的准备,我想添加一列,指出第一个周期事件等于每个公司的 True。对于非多索引数据帧,我会使用idxmax,但我无法弄清楚如何使其适用于多索引df。其中,我尝试了以下方法:def funct(df, column): df[column].idxmax()df = panel_long.groupby('company').apply(funct, ('event'))但这只会返回一个空的数据帧。有什么想法吗?我被卡住了
1 回答

人到中年有点甜
TA贡献1895条经验 获得超7个赞
您应该在自定义函数中输出return
def funct(df, column):
return df[column].idxmax()
df.groupby('company').apply(funct, ('event'))
Out[248]:
company
A (A, 1)
B (B, 1)
dtype: object
添加回答
举报
0/150
提交
取消