首页 > 解决方案 > 有没有办法在python中设置一个等于日期的数字?

问题描述

我有一些文件具有与日期对应的随机生成的数字:

736815 = 01/05/2018

我需要创建一个将逻辑应用于序列号的函数或流程,以便下一个数字等于下一个日历日期。

理想情况下,我需要密钥:对格式,这样当我将文件转换为新格式时,我可以应用日期代替自动文件名。

希望这更有意义,它用于命名转换后的文件。

标签: pythonpandasdatetime

解决方案


我认为origin参数可以在这里使用,也可以添加unit='D'to_datetime

df = pd.DataFrame({'col':[5678, 5679, 5680]})

df['date'] = pd.to_datetime(df['col'] - 5678, unit='D', origin=pd.Timestamp('2020-01-01'))
print (df)
    col       date
0  5678 2020-01-01
1  5679 2020-01-02
2  5680 2020-01-03

非 pandas 解决方案,只有具有相同想法的纯 python:

from datetime import datetime, timedelta
L = [5678, 5679, 5680]

a = [timedelta(x-5678) + datetime(2020,1,1)  for x in L]
print (a)
[datetime.datetime(2020, 1, 1, 0, 0), 
 datetime.datetime(2020, 1, 2, 0, 0), 
 datetime.datetime(2020, 1, 3, 0, 0)]

推荐阅读