将日期列和时间列合并到datetime列

时间:2013-11-15 19:49:31

标签: python datetime pandas data-analysis

我有像这样的Pandas数据帧; (通过解析excel文件获得)

|     |     COMPANY NAME           | MEETING DATE        | MEETING TIME|
-----------------------------------------------------------------------|
|YKSGR|    YAPI KREDİ SİGORTA A.Ş. | 2013-12-16 00:00:00 |14:00:00     |
|TRCAS|    TURCAS PETROL A.Ş.      | 2013-12-12 00:00:00 |13:30:00     |

MEETING DATE是一个时间戳,其中包含Timestamp('2013-12-20 00:00:00', tz=None)MEETING TIME这样的表示,其datetime.time对象的表达式为datetime.time(14, 0)

我想将MEETING DATEMEETING TIME合并为一列。 datetime.combine似乎做了我想做的事,但是,我需要以某种方式逐列地应用这个函数。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:8)

您可以使用apply方法,并按照以下方式应用组合:

>>> df.apply(lambda x: combine(x['MEETING DATE'], x['MEETING TIME']), axis=1)
0   2013-12-16 14:00:00
1   2013-12-12 13:00:00

答案 1 :(得分:2)

您可以先将Time列转换为string,然后转换为to_timedelta,然后将两列简单地相加:

print (type(df['MEETING DATE'].iat[0]))
<class 'pandas.tslib.Timestamp'>

print (type(df['MEETING TIME'].iat[0]))
<class 'datetime.time'>

print (df['MEETING DATE'] + pd.to_timedelta(df['MEETING TIME'].astype(str)))
YKSGR   2013-12-16 14:00:00
TRCAS   2013-12-12 13:30:00
dtype: datetime64[ns]