Ваш df
:
In [370]: df
Out[370]:
0 1 2 3 4
0 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
1 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
2 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
3 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
...
df.astype(dataTypes)
дает мне TypeError
(мой pd
не последний).
In [373]: df.to_records()
Out[373]:
rec.array([(0, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(1, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(2, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(3, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(4, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(5, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(6, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(7, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(8, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821),
(9, 1583663558450195, -7.06366444, -6.27760792, -4.20689821, -4.20689821)],
dtype=[('index', '<i8'), ('0', '<i8'), ('1', '<f8'), ('2', '<f8'), ('3', '<f8'), ('4', '<f8')])
Этот массив должен сохранить с h5py
.
to_records
имеет параметры, которые могут создать что-то ближе к вашему dataTypes
. Я позволю вам изучить их.
Но с последней реструктуризацией recfunctions
мы можем создать структурированный массив с:
In [385]: import numpy.lib.recfunctions as rf
In [386]: rf.unstructured_to_structured(np.array(data), dataTypes)
Out[386]:
array([(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898),
(1583663558450195, -7.0636644, -6.277608, -4.206898, -4.206898)],
dtype=[('ts', '<u8'), ('x', '<f4'), ('y', '<f4'), ('z', '<f4'), ('temp', '<f4')])
np.array(data)
is (10,5) массив с плавающей точкой.
In [388]: pd.DataFrame(_386)
Out[388]:
ts x y z temp
0 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
1 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
2 1583663558450195 -7.063664 -6.277608 -4.206898 -4.206898
...