咨询:MongoDB导出的NumberLong格式时间戳转日期格式方法
解决MongoDB导出毫秒时间戳字符串转Plotly可用日期格式的问题
你的问题出在用错了日期解析的格式参数——你手里的是13位的毫秒级时间戳字符串,不是%Y%m%d(YYYYMMDD)格式的日期字符串,所以之前的两种方法都没法正确解析。
直接用下面的方法就能完成转换:
方法1:直接利用pd.to_datetime的unit参数
import pandas as pd df = pd.DataFrame({'id': {0: 84, 1: 84, 2: 84, 3: 84, 4: 124}, 'commitDate': {0: '1617799976000', 1: '1622430757000', 2: '1607286945000'}}) # 转换毫秒时间戳字符串为标准datetime格式 df['commitDate'] = pd.to_datetime(df['commitDate'], unit='ms')
方法2:先转整数再解析(兼容特殊场景)
如果列里存在空值或非标准字符串,可以先转成整数再解析,避免报错:
# 先将字符串转为整数,再指定毫秒单位解析 df['commitDate'] = pd.to_datetime(df['commitDate'].astype(int, errors='ignore'), unit='ms')
转换完成后,commitDate列会变成datetime64[ns]类型,Plotly可以直接识别这个类型用于绘制时间相关的图表。
内容的提问来源于stack exchange,提问作者Brie MerryWeather
相关产品推荐
相关产品推荐

