Datk concat dataframe меняет тип столбца с 'int' на 'float' - PullRequest
0 голосов
/ 13 января 2020

Я работаю с большими наборами данных временных рядов данных. Данные хранятся в файлах паркета. Со временем добавляются новые столбцы. Я использую concat для объединения данных из разных файлов, что работает очень хорошо, но я столкнулся с небольшой проблемой 'i sh, когда типы данных нестабильны при объединении кадров данных dask. Пример:

У меня есть два фрейма данных с различным набором столбцов с типами данных float и integer:

import pandas as pd 
import dask.dataframe as dd

x = pd.DataFrame( [[1., 2.],[3., 4.]], columns=["a", "b"], index=[1,3])
y = pd.DataFrame( [[5., 6., 7], [8.,9., 10]], columns=["a", "b", "c"], index=[5,8])

dtypes на фрейме данных 'y' равно 'float64', ' float64 ',' int64 '.

Если я преобразую a и b в кадры данных dask и установлю контакт: , 'float64', 'float64' , поэтому при объединении d-тип столбца 'c' изменяется от int на float. В остальном данные верны.

Это ошибка?

1 Ответ

1 голос
/ 13 января 2020

Это не должно быть сюрпризом. До pandas 1.0 было невозможно иметь NaN в целых рядах (см. whats_new ). Если вы попытаетесь сделать pd.concat([x,y]).info(), вы увидите тот же результат. Так что нет, это не ошибка, это напрямую зависит от того, как работает pandas.

...