金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3066|回复: 11

请问:python中如何将浮点转换为日期

[复制链接]

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
发表于 2022-12-20 14:26 | 显示全部楼层 |阅读模式
python读取行情数据时,时间是如下浮点型:


想转换成如下日期型:


请赐教,谢谢
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-20 14:30 | 显示全部楼层
不好意思,图没贴上
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-20 14:35 | 显示全部楼层
读取时间是如下浮点型:
截图202212201432388732.png

想转换成如下日期型:
截图202212201434335777.png
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-20 16:58 | 显示全部楼层
先转整型
bar_close 是我取的函数日期字段的一组数据
d = '%d'%bar_close[-1][0]
转为字符串后用strptime 处理下
datetime.datetime.strptime(str(d),"%Y%m%d%H%M%S")
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-21 14:02 | 显示全部楼层
谢谢
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-21 14:09 | 显示全部楼层
试了,整型、字符串都能调出来了,变成时间格式,报错:

截图202212211406275374.png

截图202212211408309923.png

怪我学艺不精,请再赐教,谢谢
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-21 14:20 | 显示全部楼层
本帖最后由 技术009 于 2022-12-21 14:38 编辑

我给你的 是单独对一个元素做转换的。
截图202212211418188758.png

你上面这样子,你是对整个列表塞进去了吧。。

此外 查询数据类的接口 系统返回的的都是数组。在一个ndarray对象中,存储的是同一类型的数据。不可以进行类型转换。
我建议你是在需要使用日期数据的地方 把数组里数据提出来再转换,而不是上来一股脑把某个字段类型都转换了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-21 16:08 | 显示全部楼层
技术009 发表于 2022-12-21 14:20
我给你的 是单独对一个元素做转换的。

# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
import numpy as np
import pandas as pd
import datetime

#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    code = context.run_info.base_book_id
    eTime = context.now                  #现在的时间
    days = 20                            #取20天前同样时间为起点
   
    sTime = eTime - datetime.timedelta(days)
    nda = history_bars_date(code,sTime,eTime,'self',['datetime','open','close'],adjusted_price=False,include_now=False)
    df = pd.DataFrame(nda,columns=['datetime','open','close'])
   
    df['datetime'] = df['datetime'].astype('Int64')
    df['datetime'] = df['datetime'].astype(str)
    print(df)
    print(df.dtypes)

    dff= df['datetime']
    print(dff)

    d1 = datetime.datetime.strptime(str(dff),"%Y%m%d%H%M%S")
    print(d1)
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-21 16:09 | 显示全部楼层
d1 = datetime.datetime.strptime(str(dff),"%Y%m%d%H%M%S")
运行到这行提示错误
回复

使用道具 举报

6

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2022-11-5
曾用名:
 楼主| 发表于 2022-12-21 16:17 | 显示全部楼层
技术009 发表于 2022-12-21 14:20
我给你的 是单独对一个元素做转换的。

“此外 查询数据类的接口 系统返回的的都是数组。在一个ndarray对象中,存储的是同一类型的数据。不可以进行类型转换。
我建议你是在需要使用日期数据的地方 把数组里数据提出来再转换,而不是上来一股脑把某个字段类型都转换了。”

谢谢,我主要是调用pandas中的时间函数时,需要这种格式,网上查了好久,没找到解决办法。
麻烦老师解惑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 20:47 , Processed in 0.307637 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表