Я объединяю два набора данных по оси (в моем случае sample_ID
). Однако кажется, что dtype
для баз данных преобразуется из int64
в float64
, даже если переменная dtype
была int64
как для первой, так и для второй базы данных. Моя первая база данных (existing
) выглядит так:
<xarray.Dataset>
Dimensions: (sample_ID: 3)
Coordinates:
* sample_ID (sample_ID) int64 0 1 2
Data variables:
a (sample_ID) float64 1.0 2.0 1.1
b (sample_ID) float64 5.0 6.0 5.1
varsUpdate (sample_ID) int64 0 0 1
y (sample_ID) float64 100.0 200.0 100.1
x (sample_ID) float64 10.0 20.0 10.1
trajID (sample_ID) int64 1 2 1
Вторая база данных (new
) выглядит так:
<xarray.Dataset>
Dimensions: (sample_ID: 1)
Coordinates:
* sample_ID (sample_ID) int64 3
Data variables:
a (sample_ID) float64 2.1
b (sample_ID) float64 6.1
varsUpdate (sample_ID) int64 1
y (sample_ID) float64 200.1
x (sample_ID) float64 20.1
trajID (sample_ID) int64 2
Конечным результатом после вызова existing.merge(new,inplace=True)
является
<xarray.Dataset>
Dimensions: (sample_ID: 4)
Coordinates:
* sample_ID (sample_ID) int64 0 1 2 3
Data variables:
a (sample_ID) float64 1.0 2.0 1.1 2.1
b (sample_ID) float64 5.0 6.0 5.1 6.1
varsUpdate (sample_ID) float64 0.0 0.0 1.0 1.0
y (sample_ID) float64 100.0 200.0 100.1 200.1
x (sample_ID) float64 10.0 20.0 10.1 20.1
trajID (sample_ID) float64 1.0 2.0 1.0 2.0
Вы можете видеть, что все типы были преобразованы в float64
. Есть ли эффективный способ поддерживать целочисленные типы?