6.对日期格式数据转换处理

日期一般都有特定的格式,但尽管如此,numpy中面向浮点数的运算处理日期数据类型也很麻烦.所以numpy中给出了转换日期格式为浮点数的方法.
首先我们尝试用loadtxt读出日期数据:

In [1]: datas,close=np.loadtxt('/home/syd/Documents/data.csv',delimiter=',',usecols=(1,6),unpack=True)
------------------------------------------------------------
----> 1 
...
ValueError: invalid literal for float(): 21-01-2011

我们把具体的报错省略,看到最后的错误提示可知,我们需要float浮点数而不能是日期的这种格式.
不同的格式的数据转换为浮点数,我们需要告诉numpy按照怎样的规则去转换:

def datetrs2num(s):
    return datetime.datetime.strptime
    (s,"%d-%m-%y").data().weekdat()

日期会被按照制定的形式提取年月日转换为datetime对象,然后被转换为date并返回weekday,星期所代表的数字,周一至周日是0-6
利用loadtxt中的converters属性进行转换:

datas,close=np.loadtxt\
('/home/syd/Documents/data.csv',delimiter=',',
usecols=(1,6),converters={1,datetrs2num},unpack=True)

最后我们尝试让他输出一个代表星期几的数字:

import numpy as np
import datetime

def datetrs2num(s):
    return datetime.datetime.strptime(s,
    "%d-%m-%Y").date().weekday()

datas,close=np.loadtxt\
('/home/syd/Documents/data.csv',delimiter=',',
usecols=(1,6),converters={1,datetrs2num},unpack=True)

print(datas)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值