Как отобразить словарь в серии панд? - PullRequest
0 голосов
/ 10 мая 2019

Я хочу заменить значение ключа Ditionary на ряд данных списка значений списка.

Мой вклад:

словарь:

   doc_id  name
     1      tamil.sh
     2      english.sh
     3      maths.sh

dataframe:

 doc_id     count 
  ["1","2"]     3
  ["2","3"]     4

Я ожидаю выхода:

     doc_id               count
  ["tamil.sh","english.sh"]   3
  ["english.sh","maths.sh"]   4

1 Ответ

0 голосов
/ 10 мая 2019

Создать словарь по первому DataFrame по zip - здесь указаны целые числа ключей, поэтому при необходимости в понимании списка get преобразует строки в int s для правильных значений соответствия:

d = dict(zip(df1['doc_id'], df1['name']))
print (d)
{1: 'tamil.sh', 2: 'english.sh', 3: 'maths.sh'}

#values are strings, so converting to integers is necessary
print (df2.loc[0, 'doc_id'])
['1', '2']

df2['doc_id'] = df2['doc_id'].apply(lambda x: [d.get(int(y),y) for y in x])
print (df2)
                   doc_id  count
0  [tamil.sh, english.sh]      3
1  [english.sh, maths.sh]      4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...