我有一个带有三个字符串列的PANDAS数据框,看起来像这样:

Name     Surname    MiddleName
James    Bond       A
Maggie   Sweenie    B


我想在表中创建一种外部联接,以便输出名称,姓氏和中间名的每种可能的组合。我正在寻找的输出是:

Name     Surname    MiddleName
James    Bond       A
Maggie   Sweenie    B
James    Sweenie    A
James    Sweenie    B
Maggie   Bond       A
Maggie   Bond       B


有什么想法是最有效的方法吗?

最佳答案

IIUC使用product

import itertools
yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)
yourdf
Out[937]:
     Name  Surname MiddleName
0   James     Bond          A
1   James     Bond          B
2   James  Sweenie          A
3   James  Sweenie          B
4  Maggie     Bond          A
5  Maggie     Bond          B
6  Maggie  Sweenie          A
7  Maggie  Sweenie          B

08-07 21:01