numpy.loadtxt,转换器错误 [英] numpy.loadtxt, converters error

查看:328
本文介绍了numpy.loadtxt,转换器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试读取CSV的类型文件.并得出日期线. 正如其他人教我的那样,我像这样编写代码,但这是错误的. 我不知道为什么请帮助我.

I am trying to read CSV's type file. And it conclude a dates line. I write the code like this, as others teach me, but it is wrong. I don't know why. please help me.

from matplotlib.dates import strpdate2num
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import os
dates=np.loadtxt('data.csv',delimiter=',',usecols=(1,),
                 converters={ 1:strpdate2num('%d-%m-%Y')})

以及以下错误信息:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-e58dd0485173> in <module>()
      1 dates=np.loadtxt('data.csv',delimiter=',',usecols=(1,),
----> 2                  converters={ 1:strpdate2num('%d-%m-%Y')})

C:\Anaconda3\lib\site-packages\numpy\lib\npyio.py in loadtxt(fname, dtype, comments, delimiter, converters, skiprows, usecols, unpack, ndmin)
    928 
    929             # Convert each value according to its column and store
--> 930             items = [conv(val) for (conv, val) in zip(converters, vals)]
    931             # Then pack it according to the dtype's nesting
    932             items = pack_items(items, packing)

C:\Anaconda3\lib\site-packages\numpy\lib\npyio.py in <listcomp>(.0)
    928 
    929             # Convert each value according to its column and store
--> 930             items = [conv(val) for (conv, val) in zip(converters, vals)]
    931             # Then pack it according to the dtype's nesting
    932             items = pack_items(items, packing)

C:\Anaconda3\lib\site-packages\matplotlib\dates.py in __call__(self, s)
    285            return value: a date2num float
    286         """
--> 287         return date2num(datetime.datetime(*time.strptime(s, self.fmt)[:6]))
    288 
    289 

C:\Anaconda3\lib\_strptime.py in _strptime_time(data_string, format)
    557     """Return a time struct based on the input string and the
    558     format string."""
--> 559     tt = _strptime(data_string, format)[0]
    560     return time.struct_time(tt[:time._STRUCT_TM_ITEMS])
    561 

C:\Anaconda3\lib\_strptime.py in _strptime(data_string, format)
    327         if not isinstance(arg, str):
    328             msg = "strptime() argument {} must be str, not {}"
--> 329             raise TypeError(msg.format(index, type(arg)))
    330 
    331     global _TimeRE_cache, _regex_cache

TypeError: strptime() argument 0 must be str, not <class 'bytes'>

推荐答案

尝试一下:

from matplotlib.dates import bytespdate2num
dates=np.loadtxt('data.csv',delimiter=',',usecols=(1,),
             converters={ 1:bytespdate2num('%d-%m-%Y')})

这篇关于numpy.loadtxt,转换器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆