Создание копии столбца в том же фрейме данных, а затем удаление исходного столбца также удаляет скопированный столбец

#python #pandas #data-science

Вопрос:

Это мой оригинальный фрейм данных — Оригинальный фрейм данных

Я создал копию столбца » spx » в том же фрейме данных, используя назначение — Создание копии столбца

Впоследствии я отбросил » spx » вместе с несколькими другими избыточными столбцами. После этого я обнаружил, что новый столбец, который я создал, также был удален — После удаления столбцов

Я хочу сохранить столбец «рыночное значение» даже после удаления «spx». Пожалуйста, укажите путь вперед и ту ошибку, которую я совершаю. Спасибо!

Комментарии:

1. Добро пожаловать в Stackoverflow. Пожалуйста, добавьте сам код, а не в виде изображений (чтобы нам было проще помочь вам и не привлекать отрицательные отзывы).

Ответ №1:

Вам нужно иметь:

 df_comp = df_comp.assign(market_value=df_comp['spx'])
 

Это происходит потому df_comp.assign(market_value=df_comp['spx']) , что не происходит на месте, поэтому без df_comp = начала, df_comp не изменяется (т. е. вы не добавляете market_value столбец в оригинал df : он просто возвращает df , где он добавлен, но это не оригинал).

Комментарии:

1. Нужен ли reset_index() ему его фрейм данных, прежде чем работать над этим df?

2. Если OP хочет, чтобы исходный индекс (т. Е. date ) был столбцом, то да. Убедитесь df , что место, где индекс фактически сбрасывается, является исходным кадром данных, если вы этого хотите.