我目前正在使用 python 尝试将一个日期时间列拆分为 2 个,一个用于日期,一个用于时间,并且该列的格式正确。
原始数据集
INCIDENT_DATE
12/31/2006 11:20:00 PM
12/31/2006 11:30:00 PM
01/01/2007 00:25
01/01/2007 00:10
12/31/2006 11:30:00 AM
01/01/2007 00:05
01/01/2007 00:01
12/31/2006 4:45:00 PM
12/31/2006 11:50:00 PM
**01/01/2007**
*我使用了 2 个代码,一个用于格式化列,另一个用于拆分它。但是,在格式化该列后,缺少的时间值给出了 00:00:00 值,此处表示午夜 12 点的时间。见下文
格式化后
2006-12-31 23:20:00
2006-12-31 23:30:00
2007-01-01 00:25:00
2007-01-01 00:10:00
2006-12-31 11:30:00
2007-01-01 00:05:00
2007-01-01 00:01:00
2006-12-31 16:45:00
2006-12-31 23:50:00
**2007-01-01 00:00:00**
使用的代码:
## Format datetime column
crimeall['INCIDENT_DATE'] = pd.DatetimeIndex(crimeall['INCIDENT_DATE'])
##Split DateTime column
crimeall['TIME'],crimeall['DATE']= crimeall['INCIDENT_DATE'].apply(lambda x:x.time()), crimeall['INCIDENT_DATE'].apply(lambda x:x.date())
是否可以在不将缺失时间值设置为 00:00:00 的情况下执行此操作?是否可以在格式化日期时间时将这些缺失值记录为 Nan?
关于如何实现将缺失时间值显示为 NaN 的格式化日期时间的任何想法。
我希望它看起来像什么
2006-12-31 23:20:00
2006-12-31 23:30:00
2007-01-01 00:25:00
2007-01-01 00:10:00
2006-12-31 11:30:00
2007-01-01 00:05:00
2007-01-01 00:01:00
2006-12-31 16:45:00
2006-12-31 23:50:00
**2007-01-01 NaN**
希望有办法完成这件事。
最佳答案
将 ambiguous =‘NaT’
添加到 pd.DatetimeIndex
。如果这不起作用,您可以随时使用类似的方式修补值
crimeall['TIME'] = [np.NaN if t.isoformat()=='00:00:00' else t for t in crimeall['TIME']]
关于python - 格式化日期时间变量将缺失的时间值作为 00 :00:00. 使用 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191807/