我有一个从Python 3.7的数据框中提取的熊猫系列。它包含一系列时间代码,例如:

17833    Sat, 27 Nov 2010 06:00:00 -0000
851      Fri, 04 Dec 2009 06:07:00 -0000
4806     Fri, 23 Mar 2012 06:02:15 -0000
16341    Sat, 20 Aug 2011 11:48:18 -0000
9444     Mon, 16 May 2011 08:06:53 -0000
                      ...
3262     Fri, 16 Dec 2011 07:30:00 -0000
37554    Wed, 11 Apr 2012 02:20:34 -0000
37555    Wed, 11 Apr 2012 02:34:00 -0000
28471    Thu, 18 Feb 2010 04:46:00 -0000
30324    Thu, 28 Jun 2012 21:23:40 -0000


左侧的数字是原始条目的索引。我希望能够将此系列分类为多种其他时间格式,例如按工作日分组(将所有“星期六”分组,将所有“星期三”分组等)或按月份分组(“ 11月”,“ 5月”) 。使用此时间码信息(在24小时,06小时等所有条目)在24小时时钟上按小时排序甚至更好。

目标输出为(仅对此样本进行排序):

按月

28471    Feb
4806     Mar
37554    Apr
37555    Apr
9444     May
                      ...
30324    Jun
16341    Aug
17833    Nov
851      Dec
3262     Dec


在工作日之前

9444     Mon
37554    Wed
37555    Wed
28471    Thu
30324    Thu
                      ...
4806     Fri
851      Fri
3262     Fri
16341    Sat
17833    Sat


按时间

37554    02
37555    02
28471    04
17833    06
4806     06
                      ...
851      06
3262     07
9444     08
16341    11
30324    21


我已经尝试过使用pd.to_datetime()函数,但是我不确定该函数应采用哪种格式,以便它可以理解该系列,这里进行说明可能会有所帮助。

最佳答案

如果您希望完全像发布的输出那样,可以考虑将列名称视为'funded date'

对于月份:

s_month=pd.to_datetime(df['funded date']).dt.month_name().str[:3]
s_month.reindex(pd.to_datetime(df['funded date']).dt.month.sort_values().index)




28471    Feb
4806     Mar
37554    Apr
37555    Apr
9444     May
30324    Jun
16341    Aug
17833    Nov
851      Dec
3262     Dec


对于一天:

s_day=pd.to_datetime(df['funded date']).dt.day_name().str[:3]
s_day.reindex(pd.to_datetime(df['funded date']).dt.dayofweek.sort_values().index)




9444     Mon
37554    Wed
37555    Wed
28471    Thu
30324    Thu
851      Fri
4806     Fri
3262     Fri
17833    Sat
16341    Sat

关于python - 如何在Python中按工作日,月份等对 Pandas 系列时间码进行排序/分组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57442239/

10-16 21:36