【问题标题】:How can I merge my columns into a single one using a multiindex如何使用多索引将我的列合并为一个列
【发布时间】:2023-01-19 00:32:01
【问题描述】:

我有一个看起来像这样的数据框:

year    2015    2016    2017    2018    2019    2015    2016    2017    2018    2019    ...     2015    2016    2017    2018    2019    2015    2016    2017    2018    2019
    PATIENTS    PATIENTS    PATIENTS    PATIENTS    PATIENTS    month   month   month   month   month   ...     diffs_24h   diffs_24h   diffs_24h   diffs_24h   diffs_24h   diffs_168h  diffs_168h  diffs_168h  diffs_168h  diffs_168h
date                                                                                    
2016-01-01 00:00:00     0.0     2.0     1.0     7.0     3.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     -1.0    -4.0    2.0     -2.0    NaN     -3.0    -2.0    -3.0    -6.0
2016-01-01 01:00:00     6.0     6.0     7.0     6.0     7.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     4.0     0.0     0.0     1.0     NaN     3.0     1.0     2.0     -1.0
2016-01-01 02:00:00     2.0     7.0     6.0     2.0     3.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     4.0     3.0     -1.0    0.0     NaN     6.0     2.0     -3.0    0.0
2016-01-01 03:00:00     0.0     2.0     2.0     4.0     6.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     -1.0    0.0     2.0     4.0     NaN     -1.0    -2.0    3.0     3.0
2016-01-01 04:00:00     1.0     2.0     5.0     8.0     0.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     -1.0    5.0     7.0     -1.0    NaN     -2.0    3.0     5.0     -2.0
...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...
2016-12-31 19:00:00     6.0     7.0     6.0     6.0     6.0     12.0    12.0    12.0    12.0    12.0    ...     -9.0    -1.0    -7.0    1.0     -2.0    1.0     0.0     -6.0    -4.0    0.0
2016-12-31 20:00:00     2.0     2.0     5.0     5.0     3.0     12.0    12.0    12.0    12.0    12.0    ...     -9.0    -7.0    -12.0   -1.0    -10.0   -2.0    -6.0    -2.0    -1.0    -4.0
2016-12-31 21:00:00     4.0     5.0     3.0     3.0     3.0     12.0    12.0    12.0    12.0    12.0    ...     -2.0    -3.0    -10.0   -2.0    -11.0   -2.0    -2.0    -2.0    -3.0    -2.0
2016-12-31 22:00:00     5.0     2.0     6.0     6.0     3.0     12.0    12.0    12.0    12.0    12.0    ...     0.0     -6.0    -4.0    5.0     -4.0    2.0     -1.0    0.0     2.0     -3.0
2016-12-31 23:00:00     1.0     3.0     4.0     4.0     6.0     12.0    12.0    12.0    12.0    12.0    ...     -6.0    -1.0    -11.0   2.0     -3.0    -4.0    -2.0    -7.0    -2.0    -2.0

我想以一个 DataFrame 结束,其中第一级是年份,但只有一年,其中包含所有列。我怎样才能做到这一点?

例子:

year    2015           2016                   2017               2018             2019  
    PATIENTS    month  PATIENTS     motnh    PATIENTS   month   PATIENTS month  PATIENTS month  ...     
date                                                                                    
2016-01-01 00:00:00     0.0     2.0     1.0     7.0     3.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     -1.0    -4.0    2.0     -2.0    NaN     -3.0    -2.0    -3.0    -6.0
2016-01-01 01:00:00     6.0     6.0     7.0     6.0     7.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     4.0     0.0     0.0     1.0     NaN     3.0     1.0     2.0     -1.0
2016-01-01 02:00:00     2.0     7.0     6.0     2.0     3.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     4.0     3.0     -1.0    0.0     NaN     6.0     2.0     -3.0    0.0
2016-01-01 03:00:00     0.0     2.0     2.0     4.0     6.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     -1.0    0.0     2.0     4.0     NaN     -1.0    -2.0    3.0     3.0
2016-01-01 04:00:00     1.0     2.0     5.0     8.0     0.0     1.0     1.0     1.0     1.0     1.0     ...     NaN     -1.0    5.0     7.0     -1.0    NaN     -2.0    3.0     5.0     -2.0
...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     .

【问题讨论】:

  • df = df.sort_index(axis=1, level=0)

标签: python pandas data-science


【解决方案1】:

我认为您只需要对列进行排序:

new_df = df.sort_index(axis=1, level=0)

【讨论】:

    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    相关资源
    最近更新 更多