Как составить комбинацию на основе другого столбца в Panda - PullRequest
1 голос
/ 25 февраля 2020

У меня есть датафрейм со столбцом ключевых слов. В столбце ключевых слов также есть 2-7 ключевых слов, разделенных запятой. Например:

URL                                    Keywords
www.example.com                   "Keyword 1 , Keyword 2 , Keyword 3"
www.example2.com                  "Keyword 2, Keyword 4, Keyword 5"
.
.
.

Я хочу вывод, который генерирует комбинации, но только две. Мне нужны значения «TO» и «FROM» для визуализации. Я ожидаю, что результат будет таким образом

URL                      Keyword Combination
www.example.com          Keyword 1, Keyword 2
www.example.com          Keyword 1, Keyword 3
www.example.com          Keyword 2, Keyword 1
www.example.com          Keyword 2, Keyword 3
.
.
.
.

Я думаю, что это будет возможно с ITERTOOLS , но я не уверен, как я могу реализовать это.

1 Ответ

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

Попробуйте itertools.permutation, itertools.chain и df.explode (для pandas> = 0,25,0):

>>> lst = [[','.join(p) for p in permutations(val.split(','),2)] for val in df['Keywords']]
>>> df['Keywords'] = lst
>>> df.explode('Keywords')

  URL                                                    Keywords
0      www.example.com                     Keyword 1 , Keyword 2 
0      www.example.com                      Keyword 1 , Keyword 3
0      www.example.com                      Keyword 2 ,Keyword 1 
0      www.example.com                      Keyword 2 , Keyword 3
0      www.example.com                       Keyword 3,Keyword 1 
0      www.example.com                      Keyword 3, Keyword 2 
1      www.example2.com                      Keyword 2, Keyword 4
1      www.example2.com                      Keyword 2, Keyword 5
1      www.example2.com                       Keyword 4,Keyword 2
1      www.example2.com                      Keyword 4, Keyword 5
1      www.example2.com                       Keyword 5,Keyword 2
1      www.example2.com                      Keyword 5, Keyword 4
...