Python 跳过空值时将字符串转换为日期时间

Python 跳过空值时将字符串转换为日期时间,python,datetime,Python,Datetime,我正在尝试转换一个包含表示日期的字符串的字段。我从以下代码开始,首先确保值是字符串,然后将其转换为字符串。。。。。。。你可能觉得一切都好!?(字符串的格式为yyyymmdd) 然而,这给了我一个错误,陈述如下 ValueError: unconverted data remains: .0 def dateconvert(Start_date): Start_date = int(Start_date) Date_String = str(Start_date) d

我正在尝试转换一个包含表示日期的字符串的字段。我从以下代码开始,首先确保值是字符串,然后将其转换为字符串。。。。。。。你可能觉得一切都好!?(字符串的格式为
yyyymmdd

然而,这给了我一个错误,陈述如下

ValueError: unconverted data remains: .0
def dateconvert(Start_date):
    Start_date = int(Start_date)  
    Date_String = str(Start_date)
    dateconv = dt.datetime.strptime(Date_String, '%Y%m%d').strftime('%d/%m/%Y')
    return  dateconv

df['Newdates'] = df['Start_Date'].apply(dateconvert)
我假设这可能是因为我输入的值是一个浮点值,所以我添加了以下内容:

ValueError: unconverted data remains: .0
def dateconvert(Start_date):
    Start_date = int(Start_date)  
    Date_String = str(Start_date)
    dateconv = dt.datetime.strptime(Date_String, '%Y%m%d').strftime('%d/%m/%Y')
    return  dateconv

df['Newdates'] = df['Start_Date'].apply(dateconvert)
然而,这给了我

ValueError: cannot convert float NaN to integer
由于此特定字段中存在
Null

因此,我尝试了以下操作,但仍然得到与以前相同的错误

def dateconvert(Start_date):
    if Start_date is not None:   
        Start_date = int(Start_date)  
        Date_String = str(Start_date)
        dateconv = dt.datetime.strptime(Date_String, '%Y%m%d').strftime('%d/%m/%Y')
        return  dateconv

df['Newdates'] = df['Start_Date'].apply(dateconvert)
我只希望能够将这个字符串转换为日期,跳过空值

谢谢。

可以使用try/catch

def dateconvert(Start_date):

    try:

        Start_date = int(Start_date)  
        Date_String = str(Start_date)
        dateconv = dt.datetime.strptime(Date_String, '%Y%m%d').strftime('%d/%m/%Y')
        return  dateconv
    except ValueError:
        return Start_date #or '' or whatever you want to return for NULL

真漂亮。谢谢!