如何将pandas DataFrame中的毫秒级时间戳转换为YY-MM-DD格式
解决方案
你转完datetime之后带时分秒是因为原始时间戳本身包含时分秒信息,按照你的使用场景可以选两种处理方式:
场景1:后续需要对日期列做时间计算、筛选等操作(保留datetime类型)
用dt.floor('D')把时间部分统一归到当日0点,再配置pandas的全局显示参数即可在打印时隐藏时间部分:
import pandas as pd # 转换时间戳为datetime并截断到日 db_rena['dep_date'] = pd.to_datetime(db.dep_date, unit='ms').dt.floor('D') db_rena['arr_date'] = pd.to_datetime(db.arr_date, unit='ms').dt.floor('D') # 全局配置datetime显示格式,打印时仅展示年月日 pd.set_option('display.datetime_format', '%Y-%m-%d')
如果是在Jupyter环境中使用,也可以用以下方式临时调整显示格式,不修改全局配置:
db_rena.style.format({ 'dep_date': '{:%Y-%m-%d}', 'arr_date': '{:%Y-%m-%d}' })
场景2:仅需要固定格式的文本(比如导出文件、展示用)
直接用dt.strftime转换为YYYY-MM-DD格式的字符串即可:
db_rena['dep_date'] = pd.to_datetime(db.dep_date, unit='ms').dt.strftime('%Y-%m-%d') db_rena['arr_date'] = pd.to_datetime(db.arr_date, unit='ms').dt.strftime('%Y-%m-%d')
内容的提问来源于stack exchange,提问作者AntonioAS
相关产品推荐
相关产品推荐

