Я получаю неожиданное поведение после удаления столбца из мультииндексного фрейма данных в pandas.
Мне нужно получить крайние (уровень = 0) столбцы для мультииндексного фрейма данных после падения столбца. Чтобы получить столбцы уровня = 0, я использовал:
df.columns.levels[0]
Однако, даже после удаления указанного столбца c из исходного кадра данных и присвоения его новому кадру данных, я по-прежнему получаю те же элементы на индексный список вместо обновленного списка столбцов.
Например:
INPUT: df
Box '1' '2' '3'
Latency code latency loc code latency loc code latency loc
0 9170. 948. L. 8170. 328. R. 9160. 238. L.
1 7540 1501. R 9170. 9028. L. 7170. 94. L.
INPUT:df.columns.levels[0]
Out: Index(['1', '2', '3'], dtype='object', name='Box Number')
dropped_df = df.drop('2', axis=1, level=0)
INPUT: dropped_df.columns.levels[0]
Out: Index(['1', '2', '3'], dtype='object', name='Box Number')
INPUT: dropped_df
Out:
Box '1' '3'
Latency code latency loc code latency loc
0 9170. 948. L. 9160. 238. L.
1 7540 1501. R 7170. 94. L.
Я не уверен, что это ошибка или я что-то не так делаю ... Почему обновленный фрейм данных (dropped_df
) возвращать те же столбцы, что и исходный кадр данных, даже если выходные данные обновленного df показывают, что кадр данных был изменен? Кэшируется (копируется) исходный кадр данных?
Любая помощь / указатели будут оценены!
ПРИМЕЧАНИЕ. Я использую python = 3.6.8. / pandas = 0.25.0
РЕДАКТИРОВАТЬ 1: столбцы имеют тип string
, поэтому неправильные типы не влияют на поведение.