Отображение столбца из одного кадра данных в другой - PullRequest
0 голосов
/ 27 ноября 2018

Я хотел бы отобразить значения в df2 ['col2'] в df ['col1']:

df        col1   col2
0       w      a
1       1      2
2       2      3

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

        col1   col2
0       w      a
1       A      2
2       B      3

Однако словарь данных - это просто столбец в df2, который выглядит как

df2        col1   col2     
1       1      A
2       2      B

Я пытался использовать это:

di = {"df2['col1']: df2['col2']}
final = df1.replace({"df2['col2']": di})

Но получите ошибку: TypeError: 'Series' objects are mutable, thus they cannot be hashed

У меня около 200 000 строк.Любая помощь будет принята.

Редактировать:

Пример словаря будет выглядеть как di = {1: "A", 2: "B"}, но находится в df2['col1']: df2['col2'].У меня 200k + строк, можно ли преобразовать df2['col1']: df2['col2'] в кортеж и т. Д.?

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете создать поисковый словарь на основе col1:col2 в df2, а затем использовать его для замены значений в df1.col1.

import pandas as pd
df1 = pd.DataFrame({'col1':['w',1,2],'col2':['a',2,3]})
df2 = pd.DataFrame({'col1':[1,2],'col2':['A','B']})

print(df1)
#  col1 col2
#0    w    a
#1    1    2
#2    2    3

print(df2)
#   col1 col2
#0     1    A
#1     2    B

dataLookUpDict = {row[1]:row[2] for row in df2[['col1','col2']].itertuples()}
final = df1.replace({'col1': dataLookUpDict})

print(final)
#  col1 col2
#0    w    a
#1    A    2
#2    B    3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...