GroupBy 之后根据特定列对数据框进行排序

我最初有一个名为 df 的数据框。我使用以下命令根据我想到的特定标准对数据框进行分组。


df= df.groupby([df['Date'].dt.strftime('%B'), 'Project','Name'])['Hours'].sum() 

结果我得到了以下数据框。


**Date**   **Project**                     **Name**                          **Hours**

September  Project 1                          x                                1.00

                                              x                                3.00

           Project 2                          a                                16.00

                                              z                                4.00

           Project 3                          y                                1.00

June       Project 1                          x                                1.00

                                              x                                45.00

                                              y                                6.00

July       Project 2                          a                                16.00

                                              z                                4.00

           Project 3                          y                                1.00


知道怎么做吗?


德玛西亚99
浏览 80回答 1
1回答

偶然的你

按月聚合,然后rename按字典使用:MonthDict={ 1 : "January",       2 : "February",       3 : "March",       4 : "April",       5 : "May",       6 : "June",       7 : "July",       8 : "August",       9 : "September",       10 : "October",       11 : "November",       12 : "December"}df= (df.groupby([df['Date'].dt.month, 'Project','Name'])['Hours'].sum()       .rename(MonthDict, level=0))如果日期时间按原始顺序排序,可以sort=False在 groupby 中使用以避免排序:df= df.groupby([df['Date'].dt.strftime('%B'), 'Project','Name'], sort=False)['Hours'].sum()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python