使用Python的月份和年份列表的时间戳

时间:2015-09-02 21:23:10

标签: python pandas graph timestamp bokeh

我想从时间戳列表中获取月份和年份列表。

date_list的输出是

Out[16]: 
[Timestamp('2014-09-30 00:00:00'),
 Timestamp('2014-10-31 00:00:00'),
 Timestamp('2014-11-30 00:00:00'),
 Timestamp('2014-12-31 00:00:00'),
 Timestamp('2015-01-31 00:00:00'),
 Timestamp('2015-02-28 00:00:00'),
 Timestamp('2015-03-31 00:00:00'),
 Timestamp('2015-04-30 00:00:00'),
 Timestamp('2015-05-31 00:00:00'),
 Timestamp('2015-06-30 00:00:00'),
 Timestamp('2015-07-31 00:00:00'),
 Timestamp('2015-08-31 00:00:00'),
 Timestamp('2015-09-30 00:00:00')]

我希望它是[2014年9月,2014年10月,2015年9月]

如果我尝试按原样绘制图形,我会得到TypeError: unsupported operand type(s) for +: 'Timestamp' and 'str'这是有道理的。我不知道如何从时间戳到达情节将接受的值。我尝试使用datetime.datetime(date_list)并得到TypeError: an integer is required

我也试过pd.to_datetime(formatted.index, format='%b %Y').tolist(),但这会给出相同的时间戳输出。

编辑:有关代码的更多信息。

我的原始数据框如下所示:

groupname                             A                B     Total
recvd_dttm                                                      
2014-09-30                            21               55     76
2014-10-31                            20               66     86
2014-11-30                            18               45     63
2014-12-31                            11               46     57
2015-01-31                            25                2     27
2015-02-28                             8                1      9
2015-03-31                            29                1     30
2015-04-30                             8               66     74
2015-05-31                            10               78     88
2015-06-30                            21               59     80
2015-07-31                            14               86    100
2015-08-31                             8               90     98
2015-09-30                             2                2      4

我使用较早的数据框df['recvd_dttm'] = pd.to_datetime(df['recvd_dttm'])

检索recv_dttm的位置

然后我做了

total_list = formatted['Total'].values.tolist()
date_list = formatted.index.tolist()

1 个答案:

答案 0 :(得分:3)

您可以使用时间戳自己的strftime格式化:

[date.strftime("%b %Y") for date in date_list]