简体   繁体   English

数据框的日期字段中的空值,如何跳过以将其格式化为日期

[英]Null Value in Date field of Data Frame, how to skip it to format as date

I have a DataFrame which have date fields, some of which are containing None values. 我有一个具有日期字段的DataFrame,其中一些包含None值。

I am changing all the dates which are in milliseconds to ddmmyyyy using below but facing issue when the value is None 我正在使用以下将所有以毫秒为单位的日期更改为ddmmyyyy,但是当值为None时面临问题

 dataframe['dt'] =dataframe['dt']/1000.0
        dataframe['dt']=datetime.datetime.fromtimestamp(dataframe['dt']).strftime('%d/%m/%Y')

Tried to disregard the None Values as below, but it is not executing the condition and going directly to else 试图忽略如下所示的None值,但是它没有执行条件并直接转到其他值

 dataframe['dt']=np.where(dataframe['dt']==pd.np.nan, pd.np.nan,dataframe['dt']/1000)
        dataframe['dt']=np.where(dataframe['dt']==pd.np.nan, pd.np.nan, datetime.datetime.fromtimestamp(dataframe['dt']).strftime('%d/%m/%Y'))

It is becoming tiring now 现在变得很累

您是否尝试过:

pd.to_datetime(dataframe['dt'], unit='ms', format='%d%m%Y', errors='coerce')

You can use the inbuilt method in pandas pd.to_datetime to covert value as DateTime objects. 您可以使用pandas pd.to_datetime的内置方法将隐性值用作DateTime对象。 once you convert to Datetime you can change the format more flexibly. 转换为日期时间后,您可以更灵活地更改格式。 If you want to convert the column 'date' to Datetime object, you can do it as below df['date']= pd.to_datetime(df['date'],format='%d/%m/%y', errors='coerce') 如果要将列“ date”转换为Datetime对象,则可以按以下步骤进行操作df['date']= pd.to_datetime(df['date'],format='%d/%m/%y', errors='coerce')

errors='coerce will make non convertible items as NaT errors='coerce将使不可转换项目为NaT

You can try apply : 您可以尝试apply

import datetime
import numpy as np
df=pd.DataFrame({'dt':[1564025326921, 1564025327921, None, 1564025328921]})
df['dt'] =df['dt']/1000.0
df['dt']= df['dt'].apply(lambda t: None if np.isnan(t) else datetime.datetime.fromtimestamp(t).strftime('%d/%m/%Y'))
df.head(10)

This will output: 这将输出:

    dt
0   24/07/2019
1   24/07/2019
2   None
3   24/07/2019

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM