私は各列に関連付けられたデータ型を見ているデータフレームを持っています。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')]
これは正しい形式に見えます。
In [28]: df = df.astype(np.dtype(dtype_new))
そして、私はエラーを取得:だから、私はDFに戻って、それを入れてみてください
TypeError('data type not understood',)
は、私が何を変えるべきか?ありがとうございました。これは、私が最近anacondaを更新する前に動作していて、私はその問題を認識していません。ありがとう。
ADJUSTMENT:
df.dtypeは私が7文字未満の文字列に '0' を変更するにはどうすればよい
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 - これはユニコードの問題ですか? Unicodeを使用した :
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