|
|
12鱼币
请教各位大神,事情背景是这样的:
我为了在python3上做数据分析,
使用了Matplotlib.dates库的strp2num方法,从csv文件中读取日期数据并转化为float用来分析。
我套用python2中的写法——
date,o,c=np.loadtxt('F:\\1\\sh.csv',delimiter=',',converters={'0':mdates.strpdate2num('%Y-%m-%d')},usecols=(0,1,3),skiprows=1,unpack=True)
然而,抛出了ValueError: could not convert string to float: b'2016-06-17'异常。
想找出问题所在,却苦于搜遍全网没有答案,用help(matplotlib.dates.strpdate2num)查看帮助也没有看到只言片语告诉我到底怎么写
我的代码
只好求救于咱们论坛的大神
本帖最后由 SixPy 于 2016-9-28 17:09 编辑
中间需要将 bytes 转换为 str
- import matplotlib.dates as mdates
- import numpy as np
- sdata = '''
- 2016-05-01,111
- 2016-05-02,222
- 2016-05-03,333'''
- with open('data.csv','w')as w:
- w.write(sdata)
- def bytedate2num(fmt):
- def converter(b):
- return mdates.strpdate2num(fmt)(b.decode('ascii'))
- return converter
- data = np.loadtxt('data.csv',
- dtype=np.int32,
- delimiter=',',
- converters={0:bytedate2num('%Y-%m-%d')})
- print(data)
复制代码
结果:
- [[736085 111]
- [736086 222]
- [736087 333]]
复制代码
|
最佳答案
查看完整内容
中间需要将 bytes 转换为 str
结果:
|