要根据groupby
的结果对列进行排序,可以按照以下步骤操作:
一、使用groupby
和transform
计算分组统计量
DataFrame
df
,有列A
用于分组,列B
想要根据分组后的均值进行排序。groupby
结合transform
计算每组B
列的均值:df['group_mean'] = df.groupby('A')['B'].transform('mean')DataFrame
中添加了一个新列group_mean
,它包含了每个分组内B
列的平均值。二、根据计算出的统计量排序
DataFrame
排序sort_values
方法根据group_mean
列对整个DataFrame
进行排序:sorted_df = df.sort_values(by='group_mean')ascending = False
:sorted_df = df.sort_values(by='group_mean', ascending = False)DataFrame
,先按A
列分组,然后在每个组内按B
列排序:grouped = df.groupby('A') sorted_groups = grouped.apply(lambda x: x.sort_values(by='B'))apply
函数会对每个分组应用一个函数,在这个例子中就是对每个分组内的B
列进行排序。三、根据分组后的计数排序
groupby
和transform
。group_count
列对DataFrame
进行排序:sorted_df = df.sort_values(by='group_count')总之,通过先使用groupby
结合transform
计算出与分组相关的统计量,然后根据这些统计量使用sort_values
等方法就可以实现对列的排序。
领取专属 10元无门槛券
手把手带您无忧上云