Установить значение для фрагмента данных Pandas

1

Я хочу сортировать подмножество фрейма данных (скажем, между индексами я и j) в соответствии с некоторым значением. Я старался

df2=df.iloc[i:j].sort_values(by=...)
df.iloc[i:j]=df2

Нет проблем с первой строкой, но ничего не происходит, когда я запускаю второй (даже не ошибка). Как мне это сделать? (Я также попробовал функцию обновления, но не сделал этого).

Теги:
pandas

1 ответ

2
Лучший ответ

Мне кажется, нужно назначить фильтруемому DataFrame с преобразованием в массив numpy values чтобы избежать выравнивания индексов:

df = pd.DataFrame({'A': [1,2,3,4,3,2,1,4,1,2]})
print (df)
   A
0  1
1  2
2  3
3  4
4  3
5  2
6  1
7  4
8  1
9  2

i = 2
j = 7
df.iloc[i:j] = df.iloc[i:j].sort_values(by='A').values
print (df)
   A
0  1
1  2
2  1
3  2
4  3
5  3
6  4
7  4
8  1
9  2
  • 0
    Спасибо, но тоже попробовал, ничего не делал ...
  • 0
    Извините, нужны .values для преобразования в numpy array
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню