Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
Python 如何将数据帧日期转换为浮点数?_Python_Pandas_Numpy_Dataframe_Xlrd - Fatal编程技术网

Python 如何将数据帧日期转换为浮点数?

Python 如何将数据帧日期转换为浮点数?,python,pandas,numpy,dataframe,xlrd,Python,Pandas,Numpy,Dataframe,Xlrd,我正在尝试使用pandas从电子表格导入数据框,然后对其列执行numpy操作。问题是我获得了标题中指定的错误:TypeError:Cannot do in place boolean setting(不能对具有非np.nan值的混合类型进行内置布尔设置)。 原因是我的dataframe包含一个带有日期的列,如: ID Date 519457 25/02/2020 10:03 519462 25/02/2020 10:07 519

我正在尝试使用pandas从电子表格导入数据框,然后对其列执行numpy操作。问题是我获得了标题中指定的错误:TypeError:Cannot do in place boolean setting(不能对具有非np.nan值的混合类型进行内置布尔设置)。 原因是我的dataframe包含一个带有日期的列,如:

  ID         Date         
519457    25/02/2020 10:03    
519462    25/02/2020 10:07     
519468    25/02/2020 10:12
 ...           ...
Numpy要求格式为浮点数,因此:

  ID         Date         
519457    43886.41875     
519462    43886.42153     
519468    43886.425 
 ...         ...      
如何在不修改电子表格本身的情况下进行此更改? 我在论坛上看到了很多帖子,询问、询问,并阅读了上面的文档,但没有做到这一点,这似乎很简单。 我相信这类问题以前已经解决过,但现在还没有找到类似的职位

我使用的代码如下

xls=pd.ExcelFiler'/home/../TwoData.xlsx' xls.sheet_名称 df=pd.读数,Hoja 1 df[E_t]=df[Date].diff 任何帮助或指点都将不胜感激

另外,我见过一些解决方案需要计算想要获得的确切数字,但由于数据帧的大小,在这种情况下这是不可能的。

我认为您需要:

#https://stackoverflow.com/a/9574948/2901002
@rewritten to vectorized solution
def excel_date(date1):
    temp = pd.Timestamp(1899, 12, 30)    # Note, not 31st Dec but 30th!
    delta = date1 - temp
    return (delta.dt.days) + (delta.dt.seconds) / 86400

df["Date"] = pd.to_datetime(df["Date"]).pipe(excel_date)

print (df)
       ID          Date
0  519457  43886.418750
1  519462  43886.421528
2  519468  43886.425000
我认为你需要:

#https://stackoverflow.com/a/9574948/2901002
@rewritten to vectorized solution
def excel_date(date1):
    temp = pd.Timestamp(1899, 12, 30)    # Note, not 31st Dec but 30th!
    delta = date1 - temp
    return (delta.dt.days) + (delta.dt.seconds) / 86400

df["Date"] = pd.to_datetime(df["Date"]).pipe(excel_date)

print (df)
       ID          Date
0  519457  43886.418750
1  519462  43886.421528
2  519468  43886.425000

您可以将日期转换为Unix时间戳。在python中,如果您有一个UTC格式的datetime对象,则可以使用时间戳来获取UTC时间戳。此函数返回datetime对象自历元以来的时间

请参见下面的示例-

from datetime import timezone
dt = datetime(2015, 10, 19)
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
print(timestamp)

1445212800.0

有关更多信息,请查看模块。

您可以将日期转换为Unix时间戳。在python中,如果您有一个UTC格式的datetime对象,则可以使用时间戳来获取UTC时间戳。此函数返回datetime对象自历元以来的时间

请参见下面的示例-

from datetime import timezone
dt = datetime(2015, 10, 19)
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
print(timestamp)

1445212800.0

请检查模块以了解更多信息。

我继续获得相同的错误消息。文档似乎表明需要“%f”的实例,但不确定如何实现它。文件中的第15行是:df[pd.isnulldf]=0@enricw-所以需要用没有日期时间替换所有列中缺少的值吗?@enricw-现在可以测试吗?我继续获得相同的错误消息。文档似乎表明需要“%f”的实例,但不确定如何实现它。文件中的第15行是:df[pd.isnulldf]=0@enricw-所以需要在没有日期时间的所有列中替换缺少的值吗?@enricw-您现在可以测试吗?