我正在尝试在Python中输入日期,但有时我不知道确切的日期或月份。所以我想只记录一年。我想做点什么:
datetime.date(year=1940, month="0 or None", day="0 or None")
这是否有代码?或者如果没有,你将如何处理这个问题?
答案 0 :(得分:4)
很遗憾,您无法通过0
,因为没有月0
因此您将获得ValueError: month must be in 1..12
,因此您无法跳过月份或日期,因为两者都是必需的。< / p>
如果您不知道确切的年份或月份,只需传递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对象。您可以单独存储整数值。日期对象表示月和日。
答案 1 :(得分:2)
Pandas有Period课程,如果您不知道,那么您无需提供日期:
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