熊猫将两个单独的列转换为单个datetime列?

时间:2019-02-28 15:10:06

标签: python pandas

我想将pandas数据框中的两列转换为单个datetime列。问题在于,其中一列是一年中的星期,一列是实际年。看起来像这样:

WEEK_OF_YEAR | YEAR
1              2016
2              2016  
...
52             2016
1              2017
2              2017
3              2017
...
52             2017
1              2018

如何创建另一个称为“ DATE”的列,将两列的日期时间转换在一起?

2 个答案:

答案 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'))