Как искать соответствующие закодированные элементы с пандами - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть две серии данных, каждое значение является списком.

    amenities                                       amenity_ids
0   [TV,Wifi,Kitchen,"Free parking on premises","I...   [64, 1,129, 66, 4, 134...]
1   [TV,Wifi,Kitchen,"Family/kid friendly",Washer,...   [1, 129, 2, 4, 71, 8, 77...]

Наборы удобств и их идентификаторы, которые, вероятно, будут соответствовать большую часть времени.

Как я могу сопоставить удобства с их соответствующими идентификаторами?

Я долженуточнить, что положение элементов не соответствует друг другу, но наборы обоих списков должны соответствовать, если данные очищают конкретную строку.

Имея около 7000 строк, мы надеемся, что сможем декодировать соответствующий ключ: пары значений

Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Вы можете использовать функцию Zip для создания словарного объекта для сопоставления значений с удобствами.Например:

l1 = ["TV","Kitchen","wifi"]
l2 = [20,40,15]
d= dict(zip(l1,l2))

Вывод: {'TV': 20, 'Kitchen': 40, 'wifi': 15}

0 голосов
/ 25 сентября 2019

Если я правильно понимаю, допустим, у нас есть это df:

                                       amenities               ids
0  [TV, Wifi, Kitchen, Free parking on premises]  [64, 1, 129, 66]
1       [TV, Wifi, Kitchen, Family/kid friendly]    [1, 129, 2, 4]

Вы можете сделать это:

pd.concat([df['amenities'].explode(),df['ids'].explode()],axis=1)

                  amenities  ids
0                        TV   64
0                      Wifi    1
0                   Kitchen  129
0  Free parking on premises   66
1                        TV    1
1                      Wifi  129
1                   Kitchen    2
1       Family/kid friendly    4

пс.Вы должны обновить панд до последней версии.

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