如果我有列表的列,是否有一个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
答案 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