熊猫:日期为年,月......分隔列到日期时间

时间:2017-11-08 18:11:13

标签: python pandas date datetime multiple-columns

我有一个像这样的Pandas DataFrame:

        Y   M   D   h   m    s  A             B             C
0    2017  10  17   0   0  0.0  2 -1.921937e-05  7.803138e-12
1    2017  10  17   0   0  0.0  2 -9.109295e-09  1.261762e-11
2    2017  10  17   0   0  0.0  2 -7.391985e-09  1.145216e-11
3    2017  10  17   0   0  0.0  2 -2.785207e-08  7.311125e-12

即。其中年,月,日,小时,分钟,秒在分隔列中为整数或浮点数。

我想知道更好/更快的方式来获得包含日期作为日期时间的Serie?

1 个答案:

答案 0 :(得分:3)

选项1
手动连接列。

i = df.iloc[:, :6].astype(str)     
j = ['Y'] + '-' + i['M'] + '-' + i['D'] + ' ' + i['h'] + ':' + i['m'] + ':' + i['s'] 
pd.to_datetime(j)

0   2017-10-17
1   2017-10-17
2   2017-10-17
3   2017-10-17
dtype: datetime64[ns]

选项2
必须为此归功于piR。这包括巧妙地重命名列并将数据帧切片传递给pd.to_datetime

m = dict(Y='year', M='month', D='day', h='hour', m='minute', s='second')
v = df.iloc[:, :6].rename(columns=m)

   year  month  day  hour  minute  second
0  2017     10   17     0       0     0.0
1  2017     10   17     0       0     0.0
2  2017     10   17     0       0     0.0
3  2017     10   17     0       0     0.0


pd.to_datetime(v)

0   2017-10-17
1   2017-10-17
2   2017-10-17
3   2017-10-17
dtype: datetime64[ns]