Я искал элегантный способ изменить указанное имя столбца в DataFrame
.
воспроизводить данные ...
import pandas as pd
d = {
'one': [1, 2, 3, 4, 5],
'two': [9, 8, 7, 6, 5],
'three': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(d)
Самое элегантное решение, которое я нашел до сих пор ...
names = df.columns.tolist()
names[names.index('two')] = 'new_name'
df.columns = names
Я надеялся на простой однострочник ... эта попытка не удалась ...
df.columns[df.columns.tolist().index('one')] = 'another_name'
Любые намеки с благодарностью получены.
Поскольку
inplace
аргумент доступен, вам не нужно копировать и присваивать исходный фрейм данных обратно себе, но сделайте следующее:источник
Что о?
источник
df['new_name']
(и другие вещи панды) после изменения переменных, как описано выше. Ваш комментарий мог быть действительным, когда он был первоначально опубликован.rename
методов является лучшим решением.Панды 0.21 теперь имеют параметр оси
Метод переименования получил параметр оси, соответствующий большинству остальных API панд.
Итак, в дополнение к этому:
Ты можешь сделать:
или
источник
pd.__version__
забудьте проверить свою версиюЕсли вы знаете, какой это столбец # (первый / второй / n-й), то это решение, опубликованное по аналогичному вопросу, работает независимо от того, названо оно или нет, и в одну строку: https://stackoverflow.com/a/26336314/ 4355695
источник
Для переименования столбцов здесь есть простой способ, который будет работать как для
Default(0,1,2,etc;)
существующих, так и для существующих столбцов, но не очень полезен для больших наборов данных (имеющих много столбцов).Для большего набора данных мы можем нарезать столбцы, которые нам нужны, и применить следующий код:
источник
Следующий короткий код может помочь:
Удалить пробелы из столбцов.
источник
AttributeError: 'int' object has no attribute 'replace'
не могли бы вы расширить это?версия панды 0.23.4
Для записи:
источник
Другим вариантом будет просто скопировать и удалить столбец:
После этого вы получите результат:
источник