Может кто-нибудь объяснить, как я могу заменить объекты в столбце 1 из одной таблицы на объект из столбца 2 другой таблицы в Pandas? - PullRequest
0 голосов
/ 12 июня 2018

https://imgur.com/a/l8W1nhm

(в настоящее время использую Juptyer Notebook для Python и внедряю Pandas для анализа данных)

Как показано на изображениях выше, у меня есть две таблицы из двух разных файлов CSV.Первая таблица - это masterList, который содержит символы слева, а справа - соответствующий идентификатор другой базы данных (Ensembl).Вторая таблица ниже - это refList, где мне нужно конвертировать каждый столбец (оба являются идентификаторами символов) в Ensembl, используя masterList.

Я посмотрел на функцию замены Pands и попробовал ее, но она заменяет целые и строковые значения, если вы добавляете masterList.str.replace [].Но я недавно узнал, что мои значения являются типом: объект, поэтому он не позволит мне использовать замену должным образом.

Так что в данный момент я застрял на этом и хотел бы посоветоваться с любыми ветеранами Панд.

Спасибо!

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете создать словарь и затем заменить:

mapping = dict(df1[['Gene Symbol', 'Ensembl']].values)
df2 = df2.replace(mapping)

Полный пример:

import pandas as pd

df1 = pd.DataFrame({
    'A': list('abc'),
    'B': ['val1','val2','val3']
})

df2 = pd.DataFrame({
    'C': list('abc'),
    'D': list('ccd')
})

mapping = dict(df1[['A', 'B']].values)
#mapping = df1.set_index('A')['B']  # alternative

df2.replace(mapping, inplace=True)

print(df2)

Возвращает:

      C     D
0  val1  val3
1  val2  val3
2  val3     d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...