Right way to reverse a pandas DataFrame?

pandas, python, reverse

Solution

data.reindex(index=data.index[::-1])

or simply:

data.iloc[::-1]

will reverse your data frame, if you want to have a `for` loop which goes from down to up you may do:

for idx in reversed(data.index):
    print(idx, data.loc[idx, 'Even'], data.loc[idx, 'Odd'])

or

for idx in reversed(data.index):
    print(idx, data.Even[idx], data.Odd[idx])

You are getting an error because `reversed` first calls `data.__len__()` which returns 6. Then it tries to call `data[j - 1]` for `j` in `range(6, 0, -1)`, and the first call would be `data[5]`; but in pandas dataframe `data[5]` means column 5, and there is no column 5 so it will throw an exception. ( see docs )

Problem

Here is my code: ``` import pandas as pd data = pd.DataFrame({'Odd':[1,3,5,6,7,9], 'Even':[0,2,4,6,8,10]}) for i in reversed(data): print(data['Odd'], data['Even']) ``` When I run this code, i get the following error: ``` Traceback (most recent call last): File "C:\Python33\lib\site-packages\pandas\core\generic.py", line 665, in _get_item_cache return cache[item] KeyError: 5 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\*****\Documents\******\********\****.py", line 5, in <module> for i in reversed(data): File "C:\Python33\lib\site-packages\pandas\core\frame.py", line 2003, in __getitem__ return self._get_item_cache(key) File "C:\Python33\lib\site-packages\pandas\core\generic.py", line 667, in _get_item_cache values = self._data.get(item) File "C:\Python33\lib\site-packages\pandas\core\internals.py", line 1656, in get _, block = self._find_block(item) File "C:\Python33\lib\site-packages\pandas\core\internals.py", line 1936, in _find_block self._check_have(item) File "C:\Python33\lib\site-packages\pandas\core\internals.py", line 1943, in _check_have raise KeyError('no item named %s' % com.pprint_thing(item)) KeyError: 'no item named 5' ``` Why am I getting this error? How can I fix that? What is the right way to reverse `pandas.DataFrame`?

Original source

Related problems