Как удалить числа из всех имен столбцов / заголовков в кадре данных - PullRequest
1 голос
/ 10 июня 2019

Привет. Итак, у меня есть фрейм данных с именами столбцов, оканчивающимися на '2018'

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

Я уже пробовал следующее:

df.columns.str.replace('\d+',"") #to try and remove the numbers from the column names

df.columns = df.columns.str.strip('') #to try and get rid of the spaces

Они ничего не делают с фреймом данных.

Я ожидаю, что имена столбцов изменятся с "Stock 2018" на "Stock"

, но этого не происходит.Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 10 июня 2019

Вам просто нужно присвоить df.columns для удаления чисел, а также не передавать ничего в str.strip() для удаления начальных / конечных пробельных символов.

df.columns=df.columns.str.replace('\d+','').str.strip()
0 голосов
/ 10 июня 2019

Вы также можете попробовать использовать регулярные выражения ..

Пример DataFrame:

>>> df = pd.DataFrame.from_dict({'Name04': ['Chris', 'Joe', 'Karn', 'Alina'], 'Age04': [14, 16, 18, 21], 'Weight04': [15, 21, 37, 45]})                                 

>>> df
   Age04 Name04  Weight04
0     14  Chris        15
1     16    Joe        21
2     18   Karn        37
3     21  Alina        45

Результат с использованием regex:

>>> df.columns = df.columns.str.replace(r'\d+', '')
>>> df
   Age   Name  Weight
0   14  Chris      15
1   16    Joe      21
2   18   Karn      37
3   21  Alina      45
0 голосов
/ 10 июня 2019

Вы не используете правильный способ переименования столбцов в пандах: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html

Из документации кажется, что вы можете просто сделать следующее:

df = df.rename(str.replace('\d+',""), axis='columns')

, дайте мне знатьесли это работает для вас.

...