根据这篇文章: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由两列组成-不知道这是否是一个因素。
本
答案 0 :(得分:1)
您可以使用loc
来选择标签,因为idxmin
返回的是索引,而不是位置:
df_2 = df.loc[ID, 'Parameter']