python pandas日期时间比较

时间:2016-04-11 15:22:35

标签: python-3.x datetime pandas

我需要比较Series中的年份。 Series中的值类似于'1996','2015','2006-01-02'或'20130101'等。我创建的代码是,

min_year = col_value_series.min()
max_year = col_value_series.max()

current_year = datetime.date.today().year

res1 = min_year > 1970
res2 = max_year < current_year

return min_year > 1970 and max_year < current_year

此代码适用于Series仅包含年份值的情况,例如'1996','2003'。但它在'20030101'或'2006-01-02'时失败了,所以我想知道如何创建一个更好的方法来考虑这两个值。

更新1.我尝试了以下代码,

col_value_series = pd.to_datetime(col_value_series, infer_datetime_format=True)
min_year = col_value_series.min().year
max_year = col_value_series.max().year

current_year = datetime.date.today().year

res1 = min_year > 1970
res2 = max_year < current_year

return min_year > 1970 and max_year < current_year

代码在“20030101”和“2006-01-02”等值上运行正常,这些值将转换为日期时间,即“2003-01-01”。但它将'1996'或'2015'的值转换为'1970-01-01 00:00:00.000001996'和'1970-01-01 00:00:00.000002015',这是完全错误的(意味着现在全年都是1970年) )。那么如何解决这个问题。

更新2.事实证明,年份值为int类型,而不是string,这就是为什么当年份转换为datetime时,它变为'1970-01- 01 00:00:00.000001996'。

0 个答案:

没有答案