如何将数据框附加到另一个数据框的每一行? [复制]

Posted

技术标签:

【中文标题】如何将数据框附加到另一个数据框的每一行? [复制]【英文标题】:How can I append a Dataframe to every row of another Dataframe? [duplicate] 【发布时间】:2019-10-20 07:09:08 【问题描述】:

我有两个这样的数据框:

| A  | B  |     | C  | D  |
| A1 | B2 |     | C2 | D2 |
| A1 | B3 |     | C1 | D2 |
| A2 | B2 |     | C1 | D3 |

我需要将 B 中的每一行附加到 A 的每一行,如下所示:

| A  | B  | C  | D  |
| A1 | B2 | C2 | D2 |
| A1 | B2 | C1 | D2 |
| A1 | B2 | C1 | D3 |
| A1 | B3 | C2 | D2 |
| A1 | B3 | C1 | D2 |
| A1 | B3 | C1 | D3 |
| A2 | B2 | C2 | D2 |
| A2 | B2 | C1 | D2 |
| A2 | B2 | C1 | D3 |

【问题讨论】:

请使用tour,阅读How to Ask,并修改您的问题以包含minimal reproducible example,显示您迄今为止所做的尝试,以及您遇到问题或错误的地方。 【参考方案1】:

尝试使用伪密钥和merge

df1 = pd.DataFrame('A':['A1','A1','A2'], 'B':['B2','B3','B2'])
df2 = pd.DataFrame('C':['C2','C1','C1'], 'D':['D2','D2','D3'])

df1.assign(key=1).merge(df2.assign(key=1)).drop('key', axis=1)

输出:

    A   B   C   D
0  A1  B2  C2  D2
1  A1  B2  C1  D2
2  A1  B2  C1  D3
3  A1  B3  C2  D2
4  A1  B3  C1  D2
5  A1  B3  C1  D3
6  A2  B2  C2  D2
7  A2  B2  C1  D2
8  A2  B2  C1  D3

【讨论】:

这个问题已经如上所述回答了,它与下面的代码一起工作: def cartesian_product_basic(df1, df2): return ( df1.assign(key=1).merge(df2.assign(key =1), on='key').drop('key', 1))

以上是关于如何将数据框附加到另一个数据框的每一行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将整个列表分配给熊猫数据框的每一行

如何在循环中将不同大小的列表附加到空熊猫数据框的每一列?

如何将一行附加到另一个数据框

将函数应用于矩阵或数据框的每一行

如何遍历数据框并对该数据框的每一行执行一些操作?

如何在数据框的每一行上应用函数?