Pandas 表中的外连接

我有一个包含三个字符串列的 PANDAS 数据框,如下所示:


Name     Surname    MiddleName

James    Bond       A

Maggie   Sweenie    B

我想在表中创建一种外连接,以便输出 Name、Surname 和 MiddleName 的所有可能组合。我正在寻找的输出是:


Name     Surname    MiddleName

James    Bond       A

Maggie   Sweenie    B

James    Sweenie    A

James    Sweenie    B

Maggie   Bond       A

Maggie   Bond       B

任何想法最有效的方法是什么?


慕神8447489
浏览 229回答 3
3回答

烙印99

IIUC 使用 productimport itertools yourdf=pd.DataFrame(list(itertools.product(*df.values.T.tolist())),columns=df.columns)yourdfOut[937]:      Name  Surname MiddleName0   James     Bond          A1   James     Bond          B2   James  Sweenie          A3   James  Sweenie          B4  Maggie     Bond          A5  Maggie     Bond          B6  Maggie  Sweenie          A7  Maggie  Sweenie          B

精慕HU

您正在寻找一种expand_grid可以使用itertools.product(). 从pandas 文档中,您可以定义expand_grid:import itertoolsdef expand_grid(data_dict):     rows = itertools.product(*data_dict.values())     return pd.DataFrame.from_records(rows, columns=data_dict.keys())expand_grid(df.to_dict('list'))  Out[38]:      Name  Surname MidName0   James     Bond       A1   James     Bond       B2   James  Sweenie       A3   James  Sweenie       B4  Maggie     Bond       A5  Maggie     Bond       B6  Maggie  Sweenie       A7  Maggie  Sweenie       B 

偶然的你

没有迭代工具:pd.MultiIndex.from_product(df.T.values.tolist()).to_frame(index=False)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python