【发布时间】:2018-01-22 17:26:00
【问题描述】:
给定df
Date Time Data
3 2017-08-10 15:15:00 a
0 2017-08-11 15:15:00 b
1 2017-08-12 15:15:00 c
2 2017-08-13 15:15:00 d
1 2017-08-14 15:15:00 e
和
print (type(df['Date'].iat[0]))
<class 'datetime.date'>
print (type(df['Time'].iat[0]))
<class 'datetime.time'>
如何将 df.Date 和 df.Time 组合到作为日期时间对象的 DateTime 列中??:
Date Time Data DateTime
3 2017-08-10 15:15:00 a 2017-08-10 15:15:00
0 2017-08-11 15:15:00 b 2017-08-11 15:15:00
1 2017-08-12 15:15:00 c 2017-08-12 15:15:00
2 2017-08-13 15:15:00 d 2017-08-13 15:15:00
1 2017-08-14 15:15:00 e 2017-08-14 15:15:00
我尝试了什么:
df['DateTime'] = df.apply(lambda r : pd.datetime.combine(r['Date'],r['Time']),1)
这按预期效果很好,但是,我更喜欢矢量化操作,我得到以下消息:
C:\Users\User\Anaconda3\lib\site-packages\ipykernel\__main__.py:1:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy
if __name__ == '__main__':
【问题讨论】:
标签: python python-3.x pandas datetime dataframe