选择多索引 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
对值进行排序,然后重置索引,最后选择价格最高的类别。
您可以尝试以下任一方法:
df.groupy(level=...).nth(0)
df.groupy(level=...).head(1)
df.groupy(level=...).first()
**注意:请考虑 .first() 将重置索引并跳过任何包含 NaN 的行。带有 None 的行不受影响。