Создайте новый столбец из pandas DataFrame на основе числового столбца c и индексов в списке - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть фрейм данных, который содержит столбец цифр c и список, содержащий строки в качестве элементов. Я хочу создать новый столбец в этом фрейме данных, где каждое число в столбце цифры c соответствует индексу списка.

Пример:

import pandas as pd

bar = ['cat','dog','chicken']
df = pd.DataFrame({'foo':[0,0,1,1,2,2]})

Ожидаемый результат:

   foo      bar
0    0      cat
1    0      cat
2    1      dog
3    1      dog
4    2  chicken
5    2  chicken

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Или вы можете использовать numpy

import numpy as np
df['bar'] = np.array(bar)[df['foo'].values]

Это лучше масштабируется для больших наборов данных, таких как:

bar = ['cat','dog','chicken']
df = pd.DataFrame({'foo':np.random.choice(np.arange(3), 10000000)})
1 голос
/ 26 февраля 2020

Быстрая и быстрая альтернатива - создать массив со списком:

df['bar'] = [bar[x] for x in df['foo']]

Другой вариант с использованием apply:

df['bar'] = df['foo'].apply(lambda x: bar[x])
print(df)

Вывод:

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