【问题标题】:Restructure word list into two columns将单词列表重组为两列
【发布时间】:2018-09-19 10:50:52
【问题描述】:

如果我有列表列,是否有一个 pandas 函数可以让我拆分以逗号分隔的每个单词以返回两个新列,一列代表第一个无法自行连接的单词,第二列代表连接的词。一般来说,这个想法是创建一个包含不同单词的单词表,并将它们放在两列中进行比较。下表用于更好地解释问题。

import pandas as pd

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

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

Desired Outcome,第一列显示第一个词,第二列表示连接词。对于列表中的下一个单词,此过程也反之亦然。:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。对于这个例子,它工作正常。我有一些字符串,其结构如下所示:r1=['tag1,tag2, tag3, tag4']。我可以像上面的例子那样转换它吗(每个标签都转换为一个唯一的字符串)?
    • r1[0].split(",") ?
    • 我只收到所有单词的列表,如 [tag1, tag3, tag4 ] 的 col1 和 col2 的 [tag2, tag3, tag4]
    • 你能准确地发布你在问题中的输入吗?
    • like this r1=['tag1,tag2,tag3,tag4](数据框列)
    猜你喜欢
    • 2017-08-08
    • 2016-08-09
    • 2019-01-11
    • 2012-05-28
    • 2020-04-02
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多