각 열과 관련된 데이터 형식을보고있는 데이터 프레임이 있습니다.Numpy dtype - 데이터 형식을 알 수 없음
나는 실행하면 :
In [23]: df.dtype.descr
Out [24]: [(u'date', '<i8'), (u'open', '<f8'), (u'high', '<f8'), (u'low', '<f8'), (u'close', '<f8'), (u'volume', '<f8'), (u'dividend', '<f8'), (u'adj_factor', '<f8'), (u'split_factor', '<f8'), (u'liq', '<f8'), (u'currency', '|O')]
내가 S7로 통화 DTYPE을 설정합니다. 나는하고있다 :
In [25]: dtype_new[-1] = (u'currency', "|S7")
In [26]: print dtype_new
Out [27]: [(u'date', '<i8'), (u'open', '<f8'), (u'high', '<f8'), (u'low', '<f8'), (u'close', '<f8'), (u'volume', '<f8'), (u'dividend', '<f8'), (u'adj_factor', '<f8'), (u'split_factor', '<f8'), (u'liq', '<f8'), (u'currency', '|S7')]
올바른 형식으로 보입니다. 그래서 난 내 DF에 다시 넣어보십시오
In [28]: df = df.astype(np.dtype(dtype_new))
그리고 오류 얻을 : 나는 무엇을 변경해야
TypeError('data type not understood',)
를? 고맙습니다. 최근에 아나콘다를 업데이트하기 전에이 작업이 진행 중이었습니다. 문제를 인식하지 못했습니다. 감사.
조정 :
df.dtype 내가 문자열에 '0'이하 7 개 문자를 변경할 수있는 방법
In [23]: records.dtype
Out[23]: dtype((numpy.record, [(u'date', '<i8'), (u'open', '<f8'), (u'high', '<f8'), (u'low', '<f8'), (u'close', '<f8'), (u'volume', '<f8'), (u'dividend', '<f8'), (u'adj_factor', '<f8'), (u'split_factor', '<f8'), (u'liq', '<f8'), (u'currency', 'O')]))
입니까?
어떻게 마지막 dtype을 'O'에서 다른 것으로 변경할 수 있습니까? 특히 7 자 미만의 문자열
LASTLY - 이건 유니 코드 문제입니까? 유니 코드와 :
In [38]: np.dtype([(u'date', '<i8')])
...:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-38-8702f0c7681f> in <module>()
----> 1 np.dtype([(u'date', '<i8')])
TypeError: data type not understood
없음 유니 코드 : 그것은 당신이 실제로 유니 코드와 약 점을 중심 것 같다
In [39]: np.dtype([('date', '<i8')])
Out[39]: dtype([('date', '<i8')])
그것은'np.ones (1, dtype = df.dtype)'와 함께 나를 위해 작동합니다. 문제가이 필드의 값과 관련이 있는지 궁금합니다. 또한 Py3도 사용하고 있습니다. – hpaulj
나는 py2에있다 - 그것은 numpy 업 그레 이드 전에 달렸다. – user1911092
최소한의 작업 예제를 제작 한 것으로 생각하십니까? 또한 정확한 버전을 실행하고 있습니까? – norok2