Pandas:如何在组内使用 groupby 和 sort


您可以使用以下语法对 pandas DataFrame 中的行进行分组,然后对组内的值进行排序:

 df. sort_values ([' var1 ',' var2 '],ascending= False ). groupby (' var1 '). head ()

以下示例展示了如何在实践中使用此语法。

示例:在 Pandas 中使用 GroupBy 和分组排序

假设我们有以下 pandas DataFrame,它显示了两个不同商店的销售额:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   ' sales ': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print (df)

  blind sales
0 B 12
1 B 25
2 to 8
3 to 14
4 B 10
5 B 20
6 to 30
7 to 30

我们可以使用以下语法按商店列对行进行分组,并根据销售额列按降序排序:

 #group by store and sort by sales values in descending order
df. sort_values ([' store ', ' sales '],ascending= False ). groupby (' store '). head ()

	blind sales
1 B 25
5 B 20
0 B 12
4 B 10
6 to 30
7 to 30
3 to 14
2 to 8

请注意,我们还可以删除ascending=False参数以按升序对销售额值进行排序:

 #group by store and sort by sales values in ascending order
df. sort_values ([' store ',' sales ']). groupby (' store '). head ()

	blind sales
2 to 8
3 to 14
6 to 30
7 to 30
4 B 10
0 B 12
5 B 20
1 B 25

请注意, head()函数仅显示每组的前 5 个值。

要显示每组前 n 个值,只需使用head(n)即可。

注意:您可以在此处找到 pandas 中 GroupBy 操作的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

Pandas:如何计算每组的累计和
Pandas:如何按组计算唯一值
Pandas:如何按组计算相关性

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注