本文介绍了在二维中创建两个 pandas 数据框的组合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个 Pandas 数据框,df1 和 df2.我想创建一个数据框 df3,其中包含使用 df1 中的一列和 df2 中的一列的所有组合.这样做效率低下的伪代码是这样的:

I have two pandas dataframes, df1 and df2. I want to create a dataframe df3 that contains all combinations using one column in df1 and one column in df2. The pseudocode of doing this inefficiently would be something like this:

df3 = []
for i in df1:
     for j in df2:
         df3.append(i + j) # where i + j is the row with the combined cols from df1 and df2

这里是 df1 的格式:

Here's the format for df1:

df1_id    other_data_1    other_data_2
1         0               1
2         1               5

df2:

df2_id    other_data_3    other_data_4
1         0               1
3         2               2

我们的目标是得到这个输出df3:

And the goal is to get this output fordf3:

df1_id    df2_id    other_data_1    other_data_2    other_data_3    other_data_4
1         1         0               1               0               1
1         3         0               1               2               2
2         1         1               5               0               1
2         3         1               5               2               2

推荐答案

Update pandas 1.2.0+

Update pandas 1.2.0+

df1.merge(df2, how='cross')


在两个数据帧之间设置一个公共键并使用pd.merge:

df1['key'] = 1
df2['key'] = 1

合并和删除关键列:

df3 = pd.merge(df1,df2,on='key').drop('key',axis=1)
df3

输出:

   df1_id  other_data_1  other_data_2  df2_id  other_data_3  other_data_4
0       1             0             1       1             0             1
1       1             0             1       3             2             2
2       2             1             5       1             0             1
3       2             1             5       3             2             2

这篇关于在二维中创建两个 pandas 数据框的组合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-31 14:55