我正在电子表格中导入一些数据。它在数据框中,但日期是数字表示或格式
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
最佳答案
拼凑自 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]
注意:大概是由于您提供的 float 的四舍五入导致的细微差别。
和 "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
时解析日期通常更可取.
关于python - 将日期(excel 格式)的数字表示形式转换为 python 日期和时间,然后将它们拆分为 pandas 中两个单独的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395186/