Constructor reorders columns and rows for (lists or dicts) of dicts · Issue #26587 · pandas-dev/pandas (original) (raw)
Code Sample
import pandas as pd print(pd.DataFrame({0:{'B':'First row','A':'Second row'}})) print(pd.DataFrame([{'B':'First column','A':'Second column'}]))
Results in
0
A Second row
B First row
A B
0 Second column First column
Problem description
The two constructor calls above reorder the rows or columns, respectively, alphabetically, so the row or column, respectively, indexed by 'A' always comes first.
Expected Output
The order of the dict should be preserved now that Python dictionaries are officially ordered.
Hence, the row or column, respectively, indexed by 'A' should come second.
I don't need to make an argument for this, because pandas itself has already decided so:
https://pandas.pydata.org/pandas-docs/version/0.23.0/whatsnew.html#whatsnew-0230-api-breaking-dict-insertion-order
Versions
Tested with pandas 0.24.2 and Python 3.7