熊猫:使用交叉表时更改列的顺序

时间:2019-06-15 20:37:45

标签: python pandas

很简单,我想更改熊猫crosstab的列顺序。

现在,它按字母顺序排列,即:星期五,星期一,星期六,星期日,星期四,星期二,星期三。我希望它按顺序进行,即:星期一,星期二,...,星期日。

这是一个数据集,我想在一周中的某天以及发生时间的一个小时内创建一个crosstab

我现在正在这样做:

pd.crosstab(data_2019.HOUR, data_2019.DAY_OF_WEEK)

输出看起来像这样:

DAY_OF_WEEK Friday  Monday  Saturday    Sunday  Thursday    Tuesday Wednesday
HOUR                            
0   204 255 256 260 225 222 192
1   121 111 198 230 116 117 145
2   128 90  217 222 84  111 96

1 个答案:

答案 0 :(得分:0)

只需按要求的顺序创建一个星期几的列表即可。然后,您可以使用.crosstab并使用

更改运行.crosstab的输出顺序

生成crosstab

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
        'Friday', 'Saturday', 'Sunday']

c = pd.crosstab(...)

一个选项

crosstab产生的列的更改顺序

  • 这仅相当于selecting all 列,但是按照您要求的顺序使用工作日名称列表,因为crosstab的输出只是普通的熊猫DataFrame
c = c[days]

或者

.reindexaxis='columns'一起使用,并指定列表(days)用于更改DataFrame的索引(列)

c = c.reindex(days, axis="columns")