我想将pandas数据框中的两列转换为单个datetime列。问题在于,其中一列是一年中的星期,一列是实际年。看起来像这样:
WEEK_OF_YEAR | YEAR
1 2016
2 2016
...
52 2016
1 2017
2 2017
3 2017
...
52 2017
1 2018
如何创建另一个称为“ DATE”的列,将两列的日期时间转换在一起?
答案 0 :(得分:3)
如果需要转换星期,请定义week by %w
的日期:
%w -工作日为十进制数字,其中0是星期日,6是星期六。
#for Sundays is set value to 0
s = df['WEEK_OF_YEAR'].astype(str) + '-0-' + df['YEAR'].astype(str)
df['date'] = pd.to_datetime(s, format='%W-%w-%Y')
print (df)
WEEK_OF_YEAR YEAR date
0 1 2016 2016-01-10
1 2 2016 2016-01-17
2 52 2016 2017-01-01
3 1 2017 2017-01-08
4 2 2017 2017-01-15
5 3 2017 2017-01-22
6 52 2017 2017-12-31
7 1 2018 2018-01-07
答案 1 :(得分:0)
尝试一下:
import time
df.DATE = time.asctime(time.strptime('{} {} 1'.format(df.YEAR, df.WEEK_OF_YEAR), '%Y %W %w'))