为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

德玛西亚99 2023-10-05 17:01:38
我最初有一个名为 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.00June       Project 1                          x                                1.00                                              x                                45.00                                              y                                6.00July       Project 2                          a                                16.00                                              z                                4.00           Project 3                          y                                1.00知道怎么做吗?
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

按月聚合,然后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()



查看完整回答
反对 回复 2023-10-05
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信