pandas.DataFrame.to_records#

DataFrame.to_records(index=True, column_dtypes=None, index_dtypes=None)[источник]#

Преобразовать DataFrame в массив записей NumPy.

Индекс будет включен как первое поле массива записей, если запрошено.

Параметры:
indexbool, по умолчанию True

Включить индекс в результирующий массив записей, сохраняемый в поле 'index' или с использованием метки индекса, если она задана.

column_dtypesstr, type, dict, по умолчанию None

Если строка или тип, тип данных для хранения всех столбцов. Если словарь, сопоставление имен столбцов и индексов (с нумерацией с нуля) с конкретными типами данных.

index_dtypesstr, type, dict, по умолчанию None

Если строка или тип, тип данных для хранения всех уровней индекса. Если словарь, сопоставление имён уровней индекса и индексов (с нумерацией с нуля) с конкретными типами данных.

Это отображение применяется только если index=True.

Возвращает:
numpy.rec.recarray

Массив NumPy ndarray с метками DataFrame в качестве полей и каждой строкой DataFrame в качестве записей.

Смотрите также

DataFrame.from_records

Преобразование структурированного или записного ndarray в DataFrame.

numpy.rec.recarray

Ndarray, который позволяет доступ к полям через атрибуты, аналогично типизированным столбцам в электронной таблице.

Примеры

>>> df = pd.DataFrame({'A': [1, 2], 'B': [0.5, 0.75]},
...                   index=['a', 'b'])
>>> df
   A     B
a  1  0.50
b  2  0.75
>>> df.to_records()
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
          dtype=[('index', 'O'), ('A', '

Если индекс DataFrame не имеет метки, то имя поля recarray устанавливается в 'index'. Если индекс имеет метку, то она используется как имя поля:

>>> df.index = df.index.rename("I")
>>> df.to_records()
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
          dtype=[('I', 'O'), ('A', '

Индекс может быть исключен из массива записей:

>>> df.to_records(index=False)
rec.array([(1, 0.5 ), (2, 0.75)],
          dtype=[('A', '

Для столбцов можно указать типы данных:

>>> df.to_records(column_dtypes={"A": "int32"})
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
          dtype=[('I', 'O'), ('A', '

А также для индекса:

>>> df.to_records(index_dtypes=")
rec.array([(b'a', 1, 0.5 ), (b'b', 2, 0.75)],
          dtype=[('I', 'S2'), ('A', '
>>> index_dtypes = f"{df.index.str.len().max()}"
>>> df.to_records(index_dtypes=index_dtypes)
rec.array([(b'a', 1, 0.5 ), (b'b', 2, 0.75)],
          dtype=[('I', 'S1'), ('A', '