Сопоставить значения фрейма данных с индексом списка - PullRequest
1 голос
/ 09 марта 2020

Я факторизовал свой предыдущий фрейм данных, используя этот код

df['name'], mapping = df['name'].factorize()

Теперь я пытаюсь получить то же факторизованное значение для моего нового фрейма данных, используя переменную mapping

Mapping

Index(['Ranny','Bob','Timmy','Lisa'],
  dtype='object')

Мой новый фрейм данных

╔════════════════╗
║ Name    Apples ║
╠════════════════╣
║ Lisa      5    ║
║ Timmy     3    ║  
║ Lisa      2    ║
║ Bob       1    ║
╚════════════════╝

Фрейм данных, который мне нужен после сопоставления имени столбца со списком

╔════════════════╗
║ Name    Apples ║
╠════════════════╣
║ 3         5    ║
║ 2         3    ║  
║ 3         2    ║
║ 1         1    ║
╚════════════════╝

Я не уверен, как это сделать. Я пытался все oop, но это слишком много времени, когда набор данных большой. Есть ли эффективный способ сделать это?

1 Ответ

3 голосов
/ 09 марта 2020

Если я правильно понимаю, вы можете использовать pd.Index.get_Indexer здесь:

df2['Name'] = mapping.get_indexer(df2['Name'])
print(df)

   Name  Apples
0     3       5
1     2       3
2     3       2
3     1       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...