Как я могу удалить пробелы из заголовков Pandas DataFrame?
Я разбираю данные из файла Excel, у которого есть лишнее пробел в некоторых заголовках столбцов.
Когда я проверяю столбцы результирующего фрейма данных, например:
df.columns
Результат выглядит следующим образом:
Index(['Year', 'Month ', 'Value'])
Следовательно, я не могу запустить
df["Month"]
Потому что он скажет мне, что столбец не найден, так как я попросил "Месяц", а не "Месяц".
Итак, мой вопрос заключается в том, как я могу удалить ненужное пустое пространство из заголовков столбцов?
Ответы
Ответ 1
Вы можете передать функции методу rename
. Метод str.strip()
должен делать то, что вы хотите.
In [5]: df
Out[5]:
Year Month Value
0 1 2 3
[1 rows x 3 columns]
In [6]: df.rename(columns=lambda x: x.strip())
Out[6]:
Year Month Value
0 1 2 3
[1 rows x 3 columns]
Ответ 2
Теперь вы можете просто вызвать .str.strip
в столбцах, если вы используете последнюю версию:
In [5]:
df = pd.DataFrame(columns=['Year', 'Month ', 'Value'])
print(df.columns.tolist())
df.columns = df.columns.str.strip()
df.columns.tolist()
['Year', 'Month ', 'Value']
Out[5]:
['Year', 'Month', 'Value']
Ответ 3
Еще более кратким: df.columns = df.columns.str.strip()