将数据框的每一行与单独的数据框合并

时间:2020-10-05 13:21:14

标签: python pandas dataframe

这可能是我遗失的非常简单的解决方案,但我想通过将每个单独的行添加到另一个数据帧中的每一行来组合两个数据帧。请参见下面的示例。

df:

      name           
 0     ben
 1     john
 2     tom

df1:

      colour
 0     red
 1     blue

结果:

         name   colour
     0    ben    red
     1    ben    blue
     2    john   red
     3    john   blue
     4    tom    red
     5    tom    blue
    
     

道歉似乎是一个简单的解决方案。预先感谢。

2 个答案:

答案 0 :(得分:1)

这可以通过交叉合并来完成:

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

答案 1 :(得分:1)

您可以使用pandas.MultiIndex.from_product

import pandas as pd
numbers = [0, 1, 2]
colors = ['green', 'purple']
df = pd.DataFrame(index=pd.MultiIndex.from_product([numbers, colors],
                  names=['number', 'color'])).reset_index()