python - 格式化日期时间变量将缺失的时间值作为 00 :00:00. 使用 Python

标签 python datetime pandas

我目前正在使用 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/

相关文章:

python - Django TruncDate 给出空值

python - Numpy:分配目的地是只读的 - 广播

c# - DateTime.Now.DayOfWeek.ToString() 与 CultureInfo

php - 如何使用 gmdate() 显示超过 24 小时,但不显示天数

python - 如何有效地从边列表创建邻接列表

python - 相当于在 tensorflow 中枚举以在 tf.map_fn 中使用索引

python - 在 Pandas 中有效地从 n 个可能性中选择 r 个结果

java - 在Java中解析字符串中的不同日期格式

python - 如何计算第一和第三四分位数?

python - 获取 pandas 数据透视表中行的 cumprod()