Sobes.tech
Middle
50

A Pandasban van egy int típusú oszlop, de egy sorban hiányzik az érték (NULL). Mi lesz ennek az oszlopnak az adattípusa?

Cégeket kérdeztek
Бюро 1440Бюро 1440

Válasz az MI-től

sobes.tech MI

В Pandas, если столбец изначально был типа int, но в одной из строк значение отсутствует (NULL), то Pandas автоматически преобразует тип этого столбца в float64. Это связано с тем, что стандартный тип int в Pandas не поддерживает значения NaN, а float64 — поддерживает.

Пример:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan]})
print(df.dtypes)

Вывод будет:

A    float64
dtype: object

Если нужно сохранить целочисленный тип с поддержкой пропусков, можно использовать тип Int64 (с большой буквы I), который поддерживает nullable integer:

df = pd.DataFrame({'A': pd.Series([1, 2, None], dtype='Int64')})
print(df.dtypes)

Вывод:

A    Int64
dtype: object