我已经看到了很多相反的示例(日期时间->天数),但是似乎无法弄清楚如何将天数转换为日期时间。
我有一个如下所示的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变量转换为日期时间?
答案 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)