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