如何在pandas中从dtype('<M8[ns]')类型提取指定格式的日期时间?
操作方案
你提到的dtype('<M8[ns]')是纳秒精度的datetime64类型,属于pandas/numpy中标准的时间类型,可根据你的使用场景选择以下两种处理方式:
- 方案一:保留时间类型,仅截断纳秒精度
如果你后续还需要对该列做时间计算、筛选等操作,推荐用dt.floor方法截断到秒级别,处理后列依然保持datetime64类型:
处理后的值显示效果为# 直接修改原ots列,纳秒部分会被置为0 df['ots'] = df['ots'].dt.floor('s')2021-04-03 14:01:22,不会再展示后面的纳秒小数。 - 方案二:直接输出为精确到秒的字符串
如果你只需要字符串格式的结果,可以用dt.strftime指定时间格式:
输出结果直接就是字符串类型的# 生成新的字符串列,也可以直接覆盖原列 df['ots_str'] = df['ots'].dt.strftime('%Y-%m-%d %H:%M:%S')2021-04-03 14:01:22。
如果是处理单个datetime64类型的数值,可直接调用对应方法:
# 单值截断保留时间类型 truncated_val = single_ots_val.floor('s') # 单值转指定格式字符串 str_val = single_ots_val.strftime('%Y-%m-%d %H:%M:%S')
内容的提问来源于stack exchange,提问作者coder_bg
相关产品推荐
相关产品推荐

