连接两个数据帧

2024-06-02 05:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

请给出两个数据帧:

DF1型:

A       B                    
a1      b1          
a2      b2          
a3      b3    

DF2型:

C1      C2   C3  
 0      0     1  

我想执行以下DF1+DF2生成以下内容:

    A       B  C1      C2   C3                  
    a1      b1  0      0     1        
    a2      b2  0      0     1
    a3      b3  0      0     1

我不清楚该如何使用Merge、Join或concatenate。请,任何帮助都将不胜感激


Tags: 数据a2a1mergeb2a3b1b3
3条回答

如果df2只包含一行,我们可以这样做:

In [30]: df1.assign(**df2.iloc[0].to_dict())
Out[30]:
    A   B  C1  C2  C3
0  a1  b1   0   0   1
1  a2  b2   0   0   1
2  a3  b3   0   0   1

让我们使用一些解包和正向填充nas:

DF1.assign(**DF2).ffill()

或者,让我们创建一个伪键来进行笛卡尔连接,然后删除这个伪键。你知道吗

DF1.assign(key=1).merge(DF2.assign(key=1), on='key').drop('key',axis=1)

输出:

    A   B   C1   C2   C3
0  a1  b1  0.0  0.0  1.0
1  a2  b2  0.0  0.0  1.0
2  a3  b3  0.0  0.0  1.0

pd.concat+ffill

pd.concat([df1,df2],1).ffill()
Out[1188]: 
    A   B   C1   C2   C3
0  a1  b1  0.0  0.0  1.0
1  a2  b2  0.0  0.0  1.0
2  a3  b3  0.0  0.0  1.0

相关问题 更多 >