私はこのようになりますパンダのデータフレームがあります。datetime64タイプに分属性はありませんか?
date price volume
0 2017-10-24 01:00:07.870000 51.90 1
1 2017-10-24 01:00:10.167000 51.90 1
2 2017-10-24 01:00:11.370000 51.89 -1
3 2017-10-24 01:00:11.370000 51.89 -6
4 2017-10-24 01:00:12.573000 51.90 5
5 2017-10-24 01:00:13.573000 51.89 -2
6 2017-10-24 01:00:13.776000 51.90 1
7 2017-10-24 01:00:21.276000 51.89 -1
8 2017-10-24 01:00:21.276000 51.88 -1
9 2017-10-24 01:00:21.276000 51.88 -2
10 2017-10-24 01:00:29.979000 51.89 1
私は日付の分の属性にnumpyのアレイとのアクセスに変換したい場合は、それが可能だが。
>>> array_df = df.values
>>> array_df[:,0] = np.array(array_df[:,0], dtype='datetime64[ms]')
>>> array_df
array([[datetime.datetime(2017, 10, 24, 1, 0, 7, 870000), 51.9, 1],
[datetime.datetime(2017, 10, 24, 1, 0, 10, 167000), 51.9, 1],
[datetime.datetime(2017, 10, 24, 1, 0, 11, 370000), 51.89, -1],
..., dtype=object)
>>> array_df[0][0].minute
0
しかし、私は同じdatetime64[ms]
型の構造化された配列を作るとき、私はその分の属性にアクセスすることはできません。 date of array_df
がそれを持っているとき
>>> array_structured = np.zeros(10, dtype=[('index', np.int32),
('date', 'datetime64[ms]'),
('price', np.float32),
('neg_value', np.int32),
('pos_value', np.int32)])
>>> array_structured
array([(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0),
(0, '1970-01-01T00:00:00.000', 0., 0, 0)],
dtype=[('index', '<i4'), ('date', '<M8[ms]'), ('price', '<f4'), ('neg_value', '<i4'), ('pos_value', '<i4')])
>>> array_structured['date'][0] = np.datetime64('2017-10-24 01:00:07.870000')
>>> array_structured['date'][0].minute
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'numpy.datetime64' object has no attribute 'minute'
も自分dtypesがdatetime64[ms]
と同じであるとき、なぜdate of array_structured
はminute attribute
を持っていませんか?
'np.datetime64オブジェクトにはそのような属性はありません。 'datetime.datetime'オブジェクトはそうです。 – hpaulj
@hpaulj答えをありがとう。次に、array_df [:、0] = np.array(array_df [:、0]、dtype = 'datetime64 [ms]') 'によってstringをdatetime64に変換したとき、そのdtypeは' datetime64'ではありませんか?構造化された配列を作成するときにdatetiemsを格納するために選択したはずのdtypeの種類を教えてください。 – maynull
@hpauljまたは、np.datetime64オブジェクトから分データを抽出する方法を知りたいです。 – maynull