8000 DOC: update DataFrame.to_records by samuelsinayoko · Pull Request #20191 · pandas-dev/pandas · GitHub
[go: up one dir, main page]

Skip to content

DOC: update DataFrame.to_records #20191

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Update to_records docstring.
- Minor changes (missing dots, newlines) to make tests pass.
- More examples.
  • Loading branch information
samuelsinayoko committed Mar 10, 2018
commit bcf416c78ad64cca52f3a98f3bf4217aa3f39ad9
46 changes: 42 additions & 4 deletions pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -1209,20 +1209,58 @@ def from_records(cls, data, index=None, exclude=None, columns=None,

def to_records(self, index=True, convert_datetime64=True):
"""
Convert DataFrame to record array. Index will be put in the
'index' field of the record array if requested
Convert DataFrame to record array.

Index will be put in the 'index' field of the record array if requested.

Parameters
----------
index : boolean, default True
Include index in resulting record array, stored in 'index' field
Include index in resulting record array, stored in 'index' field.
convert_datetime64 : boolean, default True
Whether to convert the index to datetime.datetime if it is a
DatetimeIndex
DatetimeIndex.

Returns
-------
y : recarray
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah sorry one last change. Could you make this y : numpy.recarray. And maybe say that in the opening line. "Convert the DataFrame to a NumPy record array"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No probs. Fixed in b1d0b09.


See Also
--------
DataFrame.from_records: convert structured or record ndarray to DataFrame.

Examples
--------
>>> df = pd.DataFrame({'col1': [1, 2], 'col2': [0.5, 0.75]}, index=['a', 'b'])
>>> df
col1 col2
a 1 0.50
b 2 0.75
>>> df.to_records()
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
dtype=[('index', 'O'), ('col1', '<i8'), ('col2', '<f8')])

The index can be excluded from the record array:
>>> df.to_records(index=False)
rec.array([(1, 0.5 ), (2, 0.75)],
dtype=[('col1', '<i8'), ('col2', '<f8')])

By default, timestamps are converted to `datetime.datetime` objects
>>> df.index = pd.date_range('2018-01-01 09:00', periods=2, freq='min')
>>> df
col1 col2
2018-01-01 09:00:00 1 0.50
2018-01-01 09:01:00 2 0.75
>>> df.to_records()
rec.array([(datetime.datetime(2018, 1, 1, 9, 0), 1, 0.5 ),
(datetime.datetime(2018, 1, 1, 9, 1), 2, 0.75)],
dtype=[('index', 'O'), ('col1', '<i8'), ('col2', '<f8')])

The timestamp conversion can be disabled to use NumPy datetime64 objects instead:
>>> df.to_records(convert_datetime64=False)
rec.array([('2018-01-01T09:00:00.000000000', 1, 0.5 ),
('2018-01-01T09:01:00.000000000', 2, 0.75)],
dtype=[('index', '<M8[ns]'), ('col1', '<i8'), ('col2', '<f8')])
"""
if index:
if is_datetime64_any_dtype(self.index) and convert_datetime64:
Expand Down
0