10

我正在尝试在 Python 中输入日期,但有时我不知道确切的日期或月份。所以我只想记录年份。我想做类似的事情:

datetime.date(year=1940, month="0 or None", day="0 or None")

有这样做的代码吗?或者如果没有,你将如何处理这个问题?

4

2 回答 2

9

不幸的是,你不能通过,0因为没有月份0所以你会得到ValueError: month must be in 1..12,你不能跳过月份或日期,因为两者都是必需的。

如果您不知道确切的年份或月份,只需为月份和日期传入 1,然后只保留年份部分。

>>> d = datetime.date(year=1940, month=1, day=1)
>>> d
datetime.date(1940, 1, 1)
>>> d.year
1940
>>> d = datetime.date(year=1940, month=1, day=1).year
>>> d
1940

第二个语句是第一个语句的简写。

但是,如果您只想存储年份,则不需要 datetime 对象。您可以单独存储整数值。日期对象意味着月份和日期。

于 2013-06-30T04:29:23.140 回答
6

Pandas 有 Period 类,如果你不知道,你不必提供 day:

import pandas as pd

pp = pd.Period('2013-12', 'M')
print pp
print pp + 1
print pp - 1
print (pp + 1).year, (pp + 1).month

输出:

2013-12
2014-01
2013-11
2014 1
于 2013-12-06T20:33:18.647 回答