Create combination of two pandas dataframes in two dimensions

佐手、 提交于 2021-02-07 12:27:02

问题


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

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

And the goal is to get this output for df3:

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

回答1:


Set a common key between the two dataframes and use pd.merge:

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

Merge and drop key column:

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

Output:

   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


来源:https://stackoverflow.com/questions/43259660/create-combination-of-two-pandas-dataframes-in-two-dimensions

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!