Как найти имя столбца по частичному совпадению строк и заменить значения в столбце словарем? - PullRequest
1 голос
/ 12 января 2020

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

Я ищу частичную строку имени столбца, например:

df.loc[df.columns.str.contains('column na')]

, которая работает нормально.

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

di = {'a': 0, 'b': 1,'c':2,'d':3 }

df['column name'].replace(di,inplace=True)

Как сделать Я комбинирую частичный поиск строки с заменой?

Я пробовал это:

df = df.loc[df.columns.str.contains('column na')].replace(di, inplace=True)

, но это заменяет весь df сообщением NoneType object of builtins module

edit:

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

column1-adfas         column2-zdfsdf
a                            b

Я хочу иметь возможность искать и заменять значения из строки частичного имени столбца, например:

column1-adfas         column2-zdfsdf
0                            1

1 Ответ

1 голос
/ 12 января 2020

Если я понимаю, мы можем использовать .map, однако это применимо только к сериям, поэтому давайте используем функцию apply, мы можем фильтровать столбцы, используя filter

cols = df.filter(like='column').columns
df[cols] = df[cols].apply(lambda x : x.map(di))

print(df)
     column1-adfas  column2-zdfsdf
0              0               1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...