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 中执行其他常见操作: