按列值的计数对数据框进行排序

时间:2021-02-11 23:27:49

标签: pandas dataframe

我有一个 Pandas 数据框 (df),我需要根据列值的计数对其进行排序。列的值为字符串。

例如,目标列的值为橙子、苹果、香蕉、桃子。单个计数( df['fruit'].value_counts() )是:

  • 香蕉2678
  • 桃子2250
  • 橙色 1765
  • 苹果 1691

结果我需要根据这些计数排序的初始数据框(包括所有列等)。所以,在前 2678 行水果列中的值应该是香蕉等

1 个答案:

答案 0 :(得分:1)

您可以使用 mapsort_values 来满足您的需求。

df['sort_col'] = df['fruit'].map(df['fruit'].value_counts())
df = df.sort_values(by='sort_col', ascending=False).drop('sort_col', axis=1)