根据字典对列重新排序

Posted

技术标签:

【中文标题】根据字典对列重新排序【英文标题】:Reorder Columns Based on a Dictionary 【发布时间】:2016-03-07 06:04:18 【问题描述】:

我有一个DataFrame,看起来像

Day    Oct    Dec    Nov
1       5      7      3
2       0      23     8
3       2      12     10

有大约 30 条记录。

不幸的是,我并不总是知道这些列将是什么(它是从不同月份的实时数据集生成的)。我知道他们将在集合中(1 月、2 月、3 月、4 月...12 月),并且将有三列,但我不知道哪三列,也不知道顺序是什么。

如何强制它们按适当的日历顺序排列?

我假设我需要通过将名称链接到像

这样的字典以某种方式将它们排序为整数
month_dict = 'Jan': 0, 
          'Feb': 1, 
          'Mar': 2, 
          'Apr': 3, 
          'May': 4, 
          'Jun': 5, 
          'Jul': 6,
          'Aug': 7, 
          'Sep': 8, 
          'Oct': 9, 
          'Nov': 10, 
          'Dec': 11

但我不知道如何使用它对列进行排序

【问题讨论】:

【参考方案1】:

有:

df = df.rename(columns=month_dict).sort_index(axis=1)

【讨论】:

以上是关于根据字典对列重新排序的主要内容,如果未能解决你的问题,请参考以下文章

sql怎么对列重新排序

如何根据另一个表中的索引序列对列中的名称进行排序?

重新排序相关矩阵图的轴标签

以最快的方式重新排序字母以按字典顺序排在第一位

字典排序

如何根据与另一列的完全匹配对列进行排序