BUG: Fix DataFrame.from_records w/ normal ndarray. #4727
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I haven't looked at the
from_records
code before, which is why I'm spending all this time laying out a relatively minor change. Previously, was causing a TypeError about None not being iterable when arr.dtype.names was None. Now goes to 'last ditch' parsing instead.This was the original test case (that dates back, in one form or another, to at least 2010), looked like this:
Problem is that the actual Exception was a
TypeError: None is not iterable
-style exception, not something internal to the code. I changed this so now anndarray
that isn't structured (i.e., hasarr.dtype.names is None
) is treated separately from the structured ndarrays (so it goes into the general case 'last ditch' verison).Now it basically produces the same thing as passing the array to the DataFrame constructor: