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