Из документов reindex :
Соответствует DataFrame новому индексу с необязательной логикой заполнения, размещая NA / NaN в местах, не имеющих значения в предыдущем индексе.Новый объект создается, если новый индекс не эквивалентен текущему и copy = False.
Поэтому я думал, что я получу переупорядоченный Dataframe
, установив copy=False
на месте (!) .Кажется, однако, что я получаю копию и мне нужно снова присвоить ее исходному объекту.Я не хочу возвращать его, если смогу избежать этого ( причина этого в другом вопросе ).
Вот что я делаю:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(5, 5))
df.columns = [ 'a', 'b', 'c', 'd', 'e' ]
df.head()
Outs:
a b c d e
0 0.234296 0.011235 0.664617 0.983243 0.177639
1 0.378308 0.659315 0.949093 0.872945 0.383024
2 0.976728 0.419274 0.993282 0.668539 0.970228
3 0.322936 0.555642 0.862659 0.134570 0.675897
4 0.167638 0.578831 0.141339 0.232592 0.976057
Reindex дает мне правильный вывод, но мне нужно было бы присвоить его обратно исходному объекту, чего я хотел избежать, используя copy=False
:
df.reindex( columns=['e', 'd', 'c', 'b', 'a'], copy=False )
Желаемый вывод после этой строки:
e d c b a
0 0.177639 0.983243 0.664617 0.011235 0.234296
1 0.383024 0.872945 0.949093 0.659315 0.378308
2 0.970228 0.668539 0.993282 0.419274 0.976728
3 0.675897 0.134570 0.862659 0.555642 0.322936
4 0.976057 0.232592 0.141339 0.578831 0.167638
Почему copy=False
не работает на месте?
Можно ли вообще это сделать?
Работа с python 3.5.3, pandas 0.23.3