将单词列表重组为两列

时间:2018-09-19 10:50:53

标签: python-3.x pandas dataframe grouping pandas-groupby

如果我有列表的列,是否有一个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 :(得分:2)

使用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