在Python中存储没有年份的日期和月份

时间:2017-01-23 02:07:20

标签: python python-2.7 datetime pandas

我只需要存储一个月和一个没有一年值的日期(生日)。

在查看pandas的文档时(主要是因为它具有有用的时间操作功能),特别是Periods,它表明你需要传递一个时间跨度和一个频率。我不太确定如何使用频率部分来解决我的问题。什么频率最合适?使用pd甚至是最好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

这不是Period的工作方式。它们代表特定的时间段。与Timestamp代表特定时间点的方式类似。

您似乎想要一个通用的Month-Day标签。您可以使用strftime来获取字符串,但是您将丢失任何日期操作。

考虑一系列带有时间戳索引的时间戳。

s = pd.date_range('2011-01-31', periods=12, freq='M').to_series()
s

2011-01-31   2011-01-31
2011-02-28   2011-02-28
2011-03-31   2011-03-31
2011-04-30   2011-04-30
2011-05-31   2011-05-31
2011-06-30   2011-06-30
2011-07-31   2011-07-31
2011-08-31   2011-08-31
2011-09-30   2011-09-30
2011-10-31   2011-10-31
2011-11-30   2011-11-30
2011-12-31   2011-12-31
Freq: M, dtype: datetime64[ns]

您可以像这样(see this site for a summary of strftime

获取月份和日期
s.dt.strftime('%m-%d')

2011-01-31    01-31
2011-02-28    02-28
2011-03-31    03-31
2011-04-30    04-30
2011-05-31    05-31
2011-06-30    06-30
2011-07-31    07-31
2011-08-31    08-31
2011-09-30    09-30
2011-10-31    10-31
2011-11-30    11-30
2011-12-31    12-31
Freq: M, dtype: object