datetime时间格式的几种常用转化+对时间空值进行判断中遇到的坑isna()和isnull()

I - 时间格式的几种简单转换

import datetime
import pandas as pd
datetime.date.today()

在这里插入图片描述

datetime.date.today().strftime("%Y-%m-%d")

在这里插入图片描述

pd.to_datetime(datetime.date.today())

在这里插入图片描述

II - 对时间进行空值判断时遇到的坑

df = pd.read_excel('../../时间判断测试文档.xlsx')
display(
    df,
    df['实际日期'].isna(),
    df['实际日期'].isnull(),
    pd.isna(df['实际日期']),
    pd.isnull(df['实际日期'])
)

注:通过上图,我们可以看到【实际日期】是存在空值的,四种方法都可以进行判断空值,但是在下面函数进行判断是,不能使用.isna( )和.isnull( )。而要使用pd.isna( )或pd.isnull( )。

目标:

如果实际日期早于等于期望日期打标签【时间达标】;晚于期日期打标签【时间不达标】

如果实际日期为空,则用期望日期与当前日期进行对比,期望日期已过打标签【时间不达标】未到期望日期打标签【期望日期在未来】

today = pd.to_datetime(datetime.date.today())
def function(a,b):
    """
    a 是期望日期
    b 是实际日期
    """
    if pd.isnull(b):	# 这也也可以写pd.isna(b)
        if a < today:
            return '时间不达标'
        else:
            return '期望时间在未来'
    else:
        if a>=b:
            return "时间达标"
        else:
            return '时间不达标'
df['时间是否达标'] = df.apply(lambda x : function(x['期望日期'],x['实际日期']),axis = 1)

测试文档(免C币)下载地址:https://download.csdn.net/download/weixin_47744974/86725971

你可能感兴趣的:(数据分析,Python,pandas,python,开发语言)