将天数转换为日期时间

时间:2020-04-23 14:28:40

标签: python python-3.x pandas

我已经看到了很多相反的示例(日期时间->天数),但是似乎无法弄清楚如何将天数转换为日期时间。

我有一个如下所示的df:

day person var
1   1      a
2   1      b
3   1      a
1   2      b
2   2      b
3   2      b
1   3      a
2   3      a
3   3      b
............
180 1      b

假设day = 1等于datetime = 01/01/2019,我如何将day变量转换为日期时间?

3 个答案:

答案 0 :(得分:2)

这是一个纯粹的熊猫解决方案:

start_date = pd.to_datetime('2019-01-01')
df['date'] = pd.to_timedelta(df['day']-1, unit='D') + start_date

输出:

   day  person var       date
0    1       1   a 2019-01-01
1    2       1   b 2019-01-02
2    3       1   a 2019-01-03
3    1       2   b 2019-01-01
4    2       2   b 2019-01-02
5    3       2   b 2019-01-03
6    1       3   a 2019-01-01
7    2       3   a 2019-01-02
8    3       3   b 2019-01-03

答案 1 :(得分:1)

可能会有更多的“ pandasy”解决方案,但是纯Python可能会做到:

import datetime

ref = datetime.datetime(2019, 1, 1)
dates = [ref + datetime.timedelta(days=d-1) for d in df['day']]
df['date'] = dates # adds a new column 'date' to the dataframe

答案 2 :(得分:0)

>>> import datetime
>>> date = datetime.datetime(2019, 1, 1)
>>> later = date + datetime.timedelta(days=5)
>>> later
datetime.datetime(2019, 1, 6, 0, 0)