我在电子表格中导入了一些数据。它位于数据框中,但日期采用数字表示或格式
41516.43
首先,我想将其转换为日期和时间对象
date_val = 30/08/2013 10:13:26 AM
然后我想将date_val分别分为日期和时间,并将它们放在我的数据框中的单独列中(df)
| **original date** | **date** | **time** |
41516.43 30/08/2013 10:13:26 AM
答案 0 :(得分:5)
从another question拼凑起来:
In [11]: s = pd.Series([41516.43])
In [12]: from xlrd.xldate import xldate_as_tuple
In [13]: from datetime import datetime
In [14]: s.apply(lambda x: datetime(*xldate_as_tuple(x, 0)))
Out[14]:
0 2013-08-30 10:19:12
dtype: datetime64[ns]
注意:可能是轻微的差异是由于您给出的浮子的四舍五入。
和"bare-knuckle no-seat-belts use-at-own-risk"版本:
In [21]: pd.Timestamp('1899-12-30') + (pd.offsets.Day(1).nanos * s).astype(np.timedelta64)
Out[21]:
0 2013-08-30 10:19:12
dtype: datetime64[ns]
我认为在使用read_excel
时解析日期通常更为可取。