编写功能适用于Pandas GroupBy

时间:2019-05-22 08:24:32

标签: python pandas

根据这篇文章:Returning subset of each group from a pandas groupby object我正在尝试编写一个函数以应用于熊猫中的groupby对象

def group_by_function(df):
    ID = df.loc[df.Parameter_1==0].Parameter_2.idxmin()        
    df_2 = df.iloc[ID].Parameter

    print(ID)
    return df_2

df.groupby(by=['Column1', 'Column2']).apply(group_by_function)

在这种情况下,我对索引的工作方式有些迷惑。在示例中,我返回的ID是1189-但是我执行的行是df.iloc [1189]返回错误,位置指示器超出范围。

我的理解是,索引应该在groupby期间保留,这就是我的ID =行告诉我的。但是后来我不清楚,为什么iloc调用随后会引发错误。

我的groupby由两列组成-不知道这是否是一个因素。

1 个答案:

答案 0 :(得分:1)

您可以使用loc来选择标签,因为idxmin返回的是索引,而不是位置:

df_2 = df.loc[ID, 'Parameter']