Python Pandas中将YYYYMMDD格式整数日期转换为Datetime类型问题求助
问题根因
该问题的核心原因是DATE列当前为数值类型,pd.to_datetime默认会将纯数值输入识别为Unix时间戳(默认单位为纳秒),20200101这类数值远小于常规的秒级/毫秒级时间戳,因此会被解析为1970年1月1日之后间隔20200101纳秒的时间点。
解决方法
- 方法1:先将字段转为字符串再解析,通用易操作
fin_data['DATE'] = pd.to_datetime(fin_data['DATE'].astype(str))
- 方法2:直接指定日期格式,解析效率更高、结果更可控,推荐优先使用
即使DATE列为数值类型,指定format参数后也可直接完成解析,无需提前手动转字符串:
fin_data['DATE'] = pd.to_datetime(fin_data['DATE'], format='%Y%m%d')
如果后续需要将datetime类型输出为YYYY-MM-DD格式的字符串,可以追加日期格式化操作(注意转成字符串后会丢失时间类型的计算能力):
fin_data['DATE_STR'] = fin_data['DATE'].dt.strftime('%Y-%m-%d')
内容的提问来源于stack exchange,提问作者BubbaKush
相关产品推荐
相关产品推荐

