Подтвердить что ты не робот

Как я могу удалить пробелы из заголовков Pandas DataFrame?

Я разбираю данные из файла Excel, у которого есть лишнее пробел в некоторых заголовках столбцов.

Когда я проверяю столбцы результирующего фрейма данных, например:

df.columns

Результат выглядит следующим образом:

Index(['Year', 'Month ', 'Value'])

Следовательно, я не могу запустить

df["Month"]

Потому что он скажет мне, что столбец не найден, так как я попросил "Месяц", а не "Месяц".

Итак, мой вопрос заключается в том, как я могу удалить ненужное пустое пространство из заголовков столбцов?

4b9b3361

Ответ 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()