我正在尝试在 Python 中输入日期,但有时我不知道确切的日期或月份。所以我只想记录年份。我想做类似的事情:
datetime.date(year=1940, month="0 or None", day="0 or None")
有这样做的代码吗?或者如果没有,你将如何处理这个问题?
我正在尝试在 Python 中输入日期,但有时我不知道确切的日期或月份。所以我只想记录年份。我想做类似的事情:
datetime.date(year=1940, month="0 or None", day="0 or None")
有这样做的代码吗?或者如果没有,你将如何处理这个问题?
不幸的是,你不能通过,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 对象。您可以单独存储整数值。日期对象意味着月份和日期。
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