【发布时间】:2021-08-31 18:30:34
【问题描述】:
我正在尝试将时间组件与日期字段分开,如下所示,但收到错误“ValueError:NaTType 不支持时间戳”
np.where(df1['Date'].isnull(),' ', pd.to_datetime(df1['Date']).apply(lambda a: a.timestamp()))
可能是什么问题,请帮忙
【问题讨论】:
标签: python pandas date timestamp
我正在尝试将时间组件与日期字段分开,如下所示,但收到错误“ValueError:NaTType 不支持时间戳”
np.where(df1['Date'].isnull(),' ', pd.to_datetime(df1['Date']).apply(lambda a: a.timestamp()))
可能是什么问题,请帮忙
【问题讨论】:
标签: python pandas date timestamp
您应该可以只使用.dt.date 和.dt.time 来提取日期和时间部分,它们可以自动为您处理空值:
df = pd.DataFrame({'DateTime': ['2018-10-10 09:10:00', None]})
df.DateTime = pd.to_datetime(df.DateTime)
df['Date'] = df.DateTime.dt.date
df['Time'] = df.DateTime.dt.time
df
# DateTime Date Time
#0 2018-10-10 09:10:00 2018-10-10 09:10:00
#1 NaT NaT NaT
或者,如果您专门寻找时间戳,请将 null 检查移至 apply,因为 np.where 不会阻止 NaT 调用 .timestamp 方法,而是执行后过滤:
df.DateTime.apply(lambda x: x.timestamp() if pd.notnull(x) else x)
#0 1.53916e+09
#1 NaT
#Name: DateTime, dtype: object
【讨论】: