- API reference
- DataFrame
- pandas.DataF...
pandas.DataFrame.to_records#
- DataFrame.to_records(index=True,column_dtypes=None,index_dtypes=None)[source]#
Convert DataFrame to a NumPy record array.
Index will be included as the first field of the record array ifrequested.
- Parameters:
- indexbool, default True
Include index in resulting record array, stored in ‘index’field or using the index label, if set.
- column_dtypesstr, type, dict, default None
If a string or type, the data type to store all columns. Ifa dictionary, a mapping of column names and indices (zero-indexed)to specific data types.
- index_dtypesstr, type, dict, default None
If a string or type, the data type to store all index levels. Ifa dictionary, a mapping of index level names and indices(zero-indexed) to specific data types.
This mapping is applied only ifindex=True.
- Returns:
- numpy.rec.recarray
NumPy ndarray with the DataFrame labels as fields and each rowof the DataFrame as entries.
See also
DataFrame.from_records
Convert structured or record ndarray to DataFrame.
numpy.rec.recarray
An ndarray that allows field access using attributes, analogous to typed columns in a spreadsheet.
Examples
>>>df=pd.DataFrame({'A':[1,2],'B':[0.5,0.75]},...index=['a','b'])>>>df A Ba 1 0.50b 2 0.75>>>df.to_records()rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)], dtype=[('index', 'O'), ('A', '<i8'), ('B', '<f8')])
If the DataFrame index has no label then the recarray field nameis set to ‘index’. If the index has a label then this is used as thefield name:
>>>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')])
The index can be excluded from the record array:
>>>df.to_records(index=False)rec.array([(1, 0.5 ), (2, 0.75)], dtype=[('A', '<i8'), ('B', '<f8')])
Data types can be specified for the columns:
>>>df.to_records(column_dtypes={"A":"int32"})rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)], dtype=[('I', 'O'), ('A', '<i4'), ('B', '<f8')])
As well as for the index:
>>>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=f"<S{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')])