在多索引 pandas DataFrame 中选择每个索引的第一行

Selecting first row of each index in multi indexing pandas DataFrame

选择多索引 pandas 数据帧的每个索引的每个第一行。

grouped = ecommerce[["category_id", "brand", "price"]].groupby(by=["category_id", "brand"]).mean()
grouped_sort = grouped.sort_values(by=["category_id", "price"], ascending=False)

grouped_sort 看起来像这样:

现在在这个数据框上,我想在每个类别中只选择价格最高的第一个品牌。

谁能帮帮我?

以下代码可以提供帮助:

gsgb = grouped_sort.copy()
gsgb = gsgb.groupby(level=0)
print(type(gsgb))
gsgb.head()

for cat, df in gsgb:
    display(df.sort_values(by=["price"], ascending=False).reset_index().iloc[0])

工作:
它基本上遍历分组数据框中的所有类别,然后根据 price 对值进行排序,然后重置索引,最后选择价格最高的那个。