【问题标题】:Pandas: change the order of the columns when using crosstab熊猫:使用交叉表时更改列的顺序
【发布时间】:2019-10-30 00:36:22
【问题描述】:

很简单,我想更改 Panda 的 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

【问题讨论】:

  • 您可以明确地对列重新排序:pd.crosstab(data_2019.HOUR, data_2019.DAY_OF_WEEK)[['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']]stackoverflow.com/questions/35321812/…

标签: python pandas


【解决方案1】:

您可以按照所需的顺序创建一个包含星期几的列表。然后你可以使用.crosstab并改变运行.crosstab的输出顺序使用

生成crosstab

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

c = pd.crosstab(...)

一个选项

crosstab产生的列的更改顺序

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

或者

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

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

【讨论】:

    猜你喜欢
    • 2021-04-09
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 2021-06-28
    • 2023-01-04
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多