在多索引数据帧中查找每个索引的第一个匹配项

我有一个名为panel_long的熊猫数据帧,看起来像这样:


                 x  y  z event Start

company period   

A       1        1  2  3 False 5

B       1        1  2  3 False 7

...

A       27       1  2  3 True  5

B       27       1  2  3 False 7

...

A       31       1  2  3 False 5

B       31       1  2  3 True  7

作为使用活动线进行生存分析的准备,我想添加一列,指出第一个周期事件等于每个公司的 True。对于非多索引数据帧,我会使用idxmax,但我无法弄清楚如何使其适用于多索引df。其中,我尝试了以下方法:


def funct(df, column):

    df[column].idxmax()


df = panel_long.groupby('company').apply(funct, ('event'))

但这只会返回一个空的数据帧。有什么想法吗?我被卡住了


白板的微信
浏览 117回答 1
1回答

人到中年有点甜

您应该在自定义函数中输出returndef funct(df, column):    return df[column].idxmax()df.groupby('company').apply(funct, ('event'))Out[248]: companyA    (A, 1)B    (B, 1)dtype: object
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python