#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Как я могу переименовать последний столбец во фрейме данных, который был передан в цепочке методов? Подумайте о следующем примере (реальный вариант использования более сложный). Как функция rename может ссылаться на обрабатываемый ею фрейм данных (который отличается от фрейма данных «таблица»? Есть ли что-то вроде следующего? К сожалению, «self» не существует.
result = table.iloc[:,2:-1].rename(columns={self.columns[-1]: "Text"})
Ответ №1:
Использовать pipe()
:
result = table.iloc[:,2:-1].pipe(lambda df: df.rename(columns={df.columns[-1]: "Text"}))
Комментарии:
1. @Wen-Ben это не должно быть моей ошибкой. Вы пытаетесь выполнять действия в цепочке, вы должны знать риск (или вы предполагали, что это будет не так).
2. Вы, ребята, такие быстрые, что мне приходится ждать еще 4 минуты, пока я не смогу принять ответ 🙂
3. @IanS если
iloc
часть создает фрейм данных без столбцов, часть переименования не будет работать. Но я отвечаю, что это инженерный компромисс, если вы хотите сделать это в цепочке.4. @adrtam Я согласен с вами, но мне кажется, что Вен-Бен придерживается другой точки зрения (и на данный момент я думаю, что он неправ, но это зависит от того, как вы интерпретируете исходный вопрос).
Ответ №2:
Я думаю, что вы можете просто сделать следующее:
result = table.iloc[:,2:-1]
result.columns = result.columns[:-1] ["Text"]
Комментарии:
1. Да, но я хочу сохранить цепочку.