Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将日期的数字表示形式(excel格式)转换为python日期和时间,然后将它们拆分为两个单独的数据框列_Python_Date_Pandas - Fatal编程技术网

将日期的数字表示形式(excel格式)转换为python日期和时间,然后将它们拆分为两个单独的数据框列

将日期的数字表示形式(excel格式)转换为python日期和时间,然后将它们拆分为两个单独的数据框列,python,date,pandas,Python,Date,Pandas,我正在电子表格中导入一些数据。它在数据框中,但日期是数字表示或格式 41516.43 首先,我想将其转换为日期和时间对象 date_val = 30/08/2013 10:13:26 AM 然后,我想将日期拆分为日期和时间,并将它们分别放在我的数据框(df)中的不同列中 拼凑自: 注:大概是由于您给出的浮点值的四舍五入造成的微小差异 版本为: 我认为通常最好在使用时解析日期。这种数字格式是什么?excel中的日期(作为短日期),但随后我删除了所有格式。从整个电子表格,使它更容易阅读。简而言

我正在电子表格中导入一些数据。它在数据框中,但日期是数字表示或格式

41516.43
首先,我想将其转换为日期和时间对象

date_val = 30/08/2013  10:13:26 AM
然后,我想将日期拆分为日期和时间,并将它们分别放在我的数据框(df)中的不同列中

拼凑自:

注:大概是由于您给出的浮点值的四舍五入造成的微小差异

版本为:


我认为通常最好在使用时解析日期。

这种数字格式是什么?excel中的日期(作为短日期),但随后我删除了所有格式。从整个电子表格,使它更容易阅读。简而言之,是excel日期格式吗?本页显示日期时间序列号是格式。。没有比这更详细的了。您是如何获得csv的,您是否尝试过使用to_excel?@AndyHayden我确实使用了to excel>并获得了>>41516.43。我选择在导入时不解析日期,因为我通常按原样导入数据,花时间查看数据以了解我能做些什么。我通常不想知道我会有多少专栏以及这些专栏的格式。谢谢你。请你解释一下什么是LAMDA,以及它是如何工作的。我经常看到它,但不知道它在做什么。它本质上是把3行代码变成1行吗?没有lamda,你还能用另一种方式写lamda语句吗?还有@Andy Hayden,为什么你必须先把浮点数转换成一个系列?\@Yoshisery数据帧中的一列是一个系列。Lambda如果是一种内联的函数生成方式。你能用一个普通函数而不是lamda来实现它吗,也就是说,有没有不用lamda的方法?@yoshiserry是的,Lambda和函数是一样的,它只是内联的。因此,您可以执行
def(x):returndatetime(*xldate\u as\u tuple(x,0))
| **original date** | **date**     | **time** | 
41516.43              30/08/2013      10:13:26 AM
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]
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]