Я хотел бы создать DataFrame с новыми обнуляемыми скалярными типами . Я использую pandas 1.0.3.
Данные импорта:
import numpy as np
import pandas as pd
from collections import OrderedDict
Если у меня есть имена столбцов:
headers = ['field',
'yr_code',
'start_col',
'end_col',
'year',
'variable_name',
'characteristics',
'source',
'date_on']
и типы данных:
dt = [pd.StringDtype(),
pd.Int64Dtype(),
np.int16,
np.numpy.int16,
pd.Int64Dtype(),
pd.StringDtype(),
pd.StringDtype(),
pd.StringDtype(),
pd.StringDtype()]
Я попытался создать спецификации столбцов в виде:
columns = OrderedDict((h, dt[i]) for i, h in enumerate(headers))
и фрейм данных в виде (с данными примера):
data = [['F00001', pd.NA, 1, 1, '', 'Blank', '', pd.NA, pd.NA]]
f = pd.DataFrame(data, columns = columns)
К сожалению, это не похоже на работу:
>>> f.dtypes
field object
yr_code object
start_col int64
end_col int64
year object
variable_name object
characteristics object
source object
date_on object
dtype: object
Я понимаю, что dtypes
может возвращать базовые типы, но, конечно, yr_code
, поскольку объект неверен. Как правильно создать DataFrame для этих типов?