pandas.DataFrame.to_records
-
DataFrame.to_records(self, index=True, convert_datetime64=None, column_dtypes=None, index_dtypes=None)[source] -
Преобразовать DataFrame в массив NumPy с записями.
Индекс будет включён в качестве первого поля массива записей, если запрошено.
Параметры: -
index : bool, default True -
Включить индекс в результирующий массив записей, хранящийся в поле ‘index’ или используя метку индекса, если она установлена.
-
convert_datetime64 : bool, default None -
Устарело начиная с версии 0.23.0.
Преобразовать индекс в datetime.datetime, если это DatetimeIndex.
-
column_dtypes : str, type, dict, default None -
Новое в версии 0.24.0.
Если строка или тип, тип данных для хранения всех столбцов. Если словарь, отображение имён столбцов и индексов (нумерация с нуля) на конкретные типы данных.
-
index_dtypes : str, type, dict, default None -
Новое в версии 0.24.0.
Если строка или тип, тип данных для хранения всех уровней индекса. Если словарь, отображение имён уровней индекса и индексов (нумерация с нуля) на конкретные типы данных.
Это отображение применяется только, если
index=True.
Возвращает: - numpy.recarray
-
Массив NumPy ndarray с метками DataFrame в качестве полей и каждой строкой DataFrame в качестве записей.
См. также
-
DataFrame.from_records - Преобразовать структурированный или массив записей ndarray в DataFrame.
-
numpy.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', '<i8'), ('B', '<f8')])Если у 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', '<i8'), ('B', '<f8')])Индекс можно исключить из массива записей:
>>> df.to_records(index=False) rec.array([(1, 0.5 ), (2, 0.75)], dtype=[('A', '<i8'), ('B', '<f8')])Можно указать типы данных для столбцов:
>>> df.to_records(column_dtypes={"A": "int32"}) rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)], dtype=[('I', 'O'), ('A', '<i4'), ('B', '<f8')])А также для индекса:
>>> df.to_records(index_dtypes="<S2") rec.array([(b'a', 1, 0.5 ), (b'b', 2, 0.75)], dtype=[('I', 'S2'), ('A', '<i8'), ('B', '<f8')])>>> index_dtypes = "<S{}".format(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', '<i8'), ('B', '<f8')]) -
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.DataFrame.to_records.html