Реструктурировать список слов в две колонки - PullRequest
0 голосов
/ 19 сентября 2018

Если у меня есть столбцы списков, есть ли функция pandas, которая позволяет мне разделять каждое слово, разделенное запятой, для возврата двух новых столбцов, один столбец представляет первое слово, которое не может соединиться само по себе, а второй столбец представляетсвязное слово.В общем, идея состоит в том, чтобы создать таблицу слов из разных слов и сравнить их вместе в двух столбцах.Следующая таблица используется для лучшей интерпретации проблемы:

import pandas as pd

r1=['tag1','tag2', 'tag3', 'tag4']

df=pd.DataFrame(r1,columns=['text'])

Желаемый результат, первый столбец показывает первое слово, второй столбец представляет связанное слово.Этот процесс также наоборот, для следующих слов в списках .:

col1  |  col2
--------------
tag1  |  tag2
tag1  |  tag3    
tag1  |  tag4
tag2  |  tag1
tag2  |  tag3
tag2  |  tag4
tag3  |  tag1
tag3  |  tag2
tag3  |  tag4
tag4  |  tag1
tag4  |  tag2
tag4  |  tag3

1 Ответ

0 голосов
/ 19 сентября 2018

Использование itertools.permutations

Демонстрация:

from itertools import permutations
import pandas as pd

r1=['tag1','tag2', 'tag3', 'tag4']

df = pd.DataFrame(list(permutations(r1,2)), columns=['col1','col2'])
#df = pd.DataFrame([i for i in permutations(r1,2)], columns=['col1','col2'])
print(df)

Вывод:

    col1  col2
0   tag1  tag2
1   tag1  tag3
2   tag1  tag4
3   tag2  tag1
4   tag2  tag3
5   tag2  tag4
6   tag3  tag1
7   tag3  tag2
8   tag3  tag4
9   tag4  tag1
10  tag4  tag2
11  tag4  tag3
...