首页 > 解决方案 > 按组更改数据框

问题描述

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

activity   time      date
0    Phone  04:00  20210810
1    Phone  08:30  20210810
2   Coffee  10:30  20210810
3    Lunch  04:00  20210810
4    Phone  10:30  20210810
5    Phone  04:00  20210810
6    Lunch  08:30  20210810
7    Lunch  10:30  20210810
0    Phone  08:45  20210811
1  Pooping  08:50  20210811
2   Coffee  10:30  20210811
3    Lunch  04:00  20210811
4    Phone  10:30  20210811
5  Meeting  04:00  20210811
6    Lunch  08:30  20210811
7    Lunch  10:30  20210811

我需要将其更改为:

                 
date     activity   time
20210810 Phone     04:00
                   08:30
                   10:30
                   04:00
         Coffee    10:30
         Lunch     04:00
                   08:30
                   10:30
20210811 Phone     08:45
                   10:30
         Pooping   08:50
         Coffee    10:30
         Meeting   04:00
         Lunch     04:00
                   08:30
                   10:30


基本上按日期、活动排序,然后为同一类型添加“”。

标签: pandasdataframeseries

解决方案


设置为索引并排序:

df.set_index(['date', 'activity']).sort_index()

或者,如果还需要对值进行排序:

    df.set_index(['date', 'activity']).sort_values(by='time').sort_index()

默认情况下,在 jupyter/ipython 中,索引将仅显示连续行的第一个值。如果您需要其他格式,请更新您的问题。


推荐阅读