Измените подстроку в столбце из dict (Python Pandas) - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть 2 кадра данных из 2 листов Excel (в одном файле). Я хочу изменить имя каждой молекулы на первом листе 1 с помощью "официального идентификатора" из базы данных, представленной на втором листе 2 .

screen first dataframe

screen second dataframe

import pandas as pd
reactions = pd.read_excel ("/Users/Python/reactions.xlsx")

molecules = pd.read_excel ("/Users/Python/reactions.xlsx" , 
                          sheet_name= 'METS')

d = molecules.set_index('MOLID')['MOLNAME'].to_dict()
#not work 
reactions['EQUATION'] = reactions['EQUATION'].str.replace('\d+','').replace(d)

У меня есть старое / новое имя молекулы в словаре, которое я также создал из 2-голист:

d

И это похоже на

{....'glucose[c]': 'glc_D', 'glucose[s]': 'glc_D', 'glucose[x]': 'glc_D', ....}

В первой базе данных столбец, где я хочу изменить имя молекулыэто вызов уравнения, и это похоже на: «АТФ [с] + глюкоза [с] => АДФ [с] + глюкоза6 фосфат [с]» Я пытаюсь изменить с помощью этого кода, это не ошибка, но молекулы в моем убежище данныхне изменились.

Спасибо за время

1 Ответ

0 голосов
/ 11 декабря 2019

Как заменить несколько подстрок в серии Pandas, используя словарь?

Я думаю, если вы настроите код на что-то подобное, вы сможете это сделать

 reactions['EQUATION'].apply(lambda x: ' '.join([d.get(i, i) for i in x.split()]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...