Pandas教程:如何将纪元以来的月数转换为datetime类型?
反向转换纪元月数为Datetime的方法
完全可行,以下是具体实现步骤:
核心原理
你之前执行的df.to_period('M').astype(int),本质是把月份周期(Period)转换为从1970年1月(即Period('1970-01', 'M'))开始的偏移整数,因此反向操作只需将整数还原为对应Period,再转成Datetime即可。
具体代码实现
import pandas as pd # 要转换的目标月数 target_month_num = 624 # 1. 将整数转换为对应月份周期(Period) period = pd.Period(target_month_num, freq='M') # 2. 将Period转换为Datetime # 默认返回当月最后一天的00:00:00 dt_end = period.to_timestamp() # 如果需要当月第一天的Datetime,添加how='start'参数 dt_start = period.to_timestamp(how='start') print(dt_end) # 输出: 2022-01-31 00:00:00 print(dt_start) # 输出: 2022-01-01 00:00:00
验证匹配
对应你之前的原始数据,624对应2022-01的月份周期,转换后的Datetime可以根据需求选择当月起始或结束时间,和原数据的时间范围完全匹配。
内容的提问来源于stack exchange,提问作者Chris Snow
相关产品推荐
相关产品推荐

