如何在Pandas中将毫秒级时间戳序列转换为年月格式?
批量转换毫秒时间戳为「年月」格式
你的时间戳是毫秒级整数(比如1570406400000),用Pandas的内置方法就能高效批量处理,比循环调用date.fromtimestamp()方便得多:
核心实现方法
直接用pd.to_datetime()把整列转成时间格式,再提取年月:
import pandas as pd # 将毫秒时间戳列转换为datetime类型(unit='ms'指定输入为毫秒级) df['latestCertificationDate'] = pd.to_datetime(df['latestCertificationDate'], unit='ms') # 生成「YYYY-MM」格式的年月列 df['cert_year_month'] = df['latestCertificationDate'].dt.strftime('%Y-%m') # 如果需要中文格式「YYYY年MM月」,修改格式化字符串即可 df['cert_year_month_cn'] = df['latestCertificationDate'].dt.strftime('%Y年%m月')
不修改原列的写法
如果不想改动原有时间戳列,可以直接链式操作:
df['cert_year_month'] = pd.to_datetime(df['latestCertificationDate'], unit='ms').dt.strftime('%Y-%m')
补充说明
你用date.fromtimestamp()能得到正确结果,是因为手动把毫秒转成了秒(比如1570406400000 ÷ 1000 = 1570406400),而pd.to_datetime()通过unit='ms'参数可以直接识别毫秒级时间戳,无需手动换算,批量处理效率更高。
测试单个值验证:
pd.to_datetime(1570406400000, unit='ms') # 输出 Timestamp('2019-10-07 00:00:00'),正好对应你提到的2019年10月
内容的提问来源于stack exchange,提问作者jhicks2306
相关产品推荐
相关产品推荐

