我有像这样的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 DATE
和MEETING TIME
合并为一列。 datetime.combine似乎做了我想做的事,但是,我需要以某种方式逐列地应用这个函数。我怎样才能做到这一点?
答案 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]