Как найти соответствующую информацию для всех элементов в списке в пандах - PullRequest
0 голосов
/ 11 мая 2018

Я хочу найти соответствующую информацию для всех элементов в списке.Например:

df=pd.DataFrame({'ID':['1','2'],'Fruit':['apple|banana','banana|watermelon']})
        Fruit             ID
0   apple|banana           1
1   banana|watermelon      2

У меня также есть набор данных с ценой на фрукты:

price=pd.DataFrame({'Fruit':['apple','banana','watermelon','pear'],
                    'price':['1.49','0.59','5.99','1.99']})
    Fruit       price
0   apple       1.49
1   banana      0.59
2   watermelon  5.99
3   pear        1.99

Я хочу найти все подходящие цены в списке фруктов:

         Fruit          ID  price
0   apple|banana        1   1.49|0.59
1   banana|watermelon   2   0.59|5.99

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

Есть предложения?

1 Ответ

0 голосов
/ 11 мая 2018

Это один из способов использования списка:

s = price.set_index('Fruit')['price']

df['price'] = ['|'.join(list(map(s.get, i))) for i in df['Fruit'].str.split('|')]

print(df)

               Fruit ID      price
0       apple|banana  1  1.49|0.59
1  banana|watermelon  2  0.59|5.99
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...